我正在尝试找出是否有一种方法可以知道加载Web Worker是否失败(例如,因为我试图从URL加载并且我又收到了404)。
我遇到的问题是,当启动工作程序失败时,我只是获得了一个传递给onerror侦听器的不确定事件。这也是在工作程序启动后发生错误时执行的回调(例如,工作程序中的任何异常也将被onerror捕获)。所以我的问题是,我需要能够确定工作程序是否仅因这种情况而无法加载以执行某些特定的错误处理,或者是否由于工作程序代码中存在异常而发生了对onerror的调用。 / p>
到目前为止,我唯一能区别的是,当worker加载失败时,该事件没有任何“ 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
}
};
谢谢!