Я пытаюсь выяснить, есть ли способ узнать, не удалась ли загрузка веб-работника (например, потому что я пытаюсь загрузить его с URL-адреса и получаю обратно 404).
Проблема, с которой я столкнулся, заключается в том, что при сбое запуска рабочего процесса я просто получаю неопределенное событие, передаваемое прослушивателю onerror.Это также обратный вызов, который выполняется при возникновении ошибки после запуска работника (например, любое исключение внутри работника также будет перехвачено ошибкой).Поэтому моя проблема в том, что мне нужно выяснить, не удалось ли рабочему просто не загружаться, чтобы выполнить какую-то конкретную обработку ошибок для этого случая, или произошел вызов onerror, потому что в рабочем коде произошло исключение.
Пока единственное различие, которое я смог сказать, состоит в том, что, когда рабочий не загружается, событие не имеет никаких свойств «message», «filename», «lineno» и «colno»,которые присутствуют в исключениях.Но использование этого ощущается довольно странно и является источником кросс-браузерных проблем, поэтому мне интересно, есть ли более чистый способ выяснить, что пошло не так.
Кстати, прямо сейчас код, который я использовал бы дляобрабатывать мои ошибки будет выглядеть примерно так:
const worker = new Worker("my_worker.js");
worker.onerror = (e) => {
if (!e.filename) {
// worker failed to load
} else {
// exception inside the worker
}
};
Спасибо!