Зарегистрирован ли AudioWorklet.addModule в сетевой консоли Chrome?

Я тестирую код некоторых звуковых рабочихлет, загружая пример модуля из Github через AudioWorklet.addModule(githubUrl). Однако, когда я смотрю на вкладку сети в настройках разработчика, я не вижу сетевого запроса к Github. Я знаю, что он делает запрос, потому что он выдавал ошибку CORS, прежде чем я переключился на использование адреса raw.githubusercontent (теперь он дает Uncaught (in promise) DOMException: The user aborted a request). Я хочу иметь возможность проверить, что возвращается сетевой вызов, чтобы помочь диагностировать проблему.

1 ответ

Решение

Похоже, в Chrome есть ошибка, которая не позволяет отображать сетевой запрос в инструментах разработчика. Я думаю, что было бы неплохо написать об этом ошибку.

Пока вы можете просто использовать Firefox. Он показывает сетевой запрос в инструментах разработчика.

Если вы хотите продолжать использовать Chrome, вы можете проксировать свой запрос с помощью fetch() чтобы он появился в инструментах разработки.

Вместо звонка addModule() прямо...

context.audioWorklet.addModule(url)

... вы можете сначала получить источник, а затем заключить его в URL-адрес объекта.

fetch(url)
    .then((response) => response.text())
    .then((text) => {
        const blob = new Blob([text], { type: 'application/javascript; charset=utf-8' });
        const objectUrl = URL.createObjectURL(blob);

        return context.audioWorklet.addModule(objectUrl)
            .finally(() => URL.revokeObjectURL(objectUrl));
    })
Другие вопросы по тегам