Как узнать, когда веб-работник не загружается? - PullRequest
0 голосов
/ 13 сентября 2018

Я пытаюсь выяснить, есть ли способ узнать, не удалась ли загрузка веб-работника (например, потому что я пытаюсь загрузить его с 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
    }
};

Спасибо!

...