Web worker onerror

4

Web Workers提供了一种方法来查找它们所接收的数据,即使它们失败了。

因此,如果我有以下代码,是否有任何方法可以在onerror处理程序中找到someData的内容,如果它失败了,或者我只需跟踪它?

var someData = {...};
myWorker.postMessage(someData);
1个回答

6

Web workers没有提供任何专门的方法来查找如果它们失败时所发布的数据。

但是这很容易手动完成,您可以从外部处理onerror,或在工作程序内部的onmessage处理程序中进行更深入的检查(在那里您可以访问消息事件):

// this one-liner was wrapped in order to improve legibility
var w = new Worker( URL.createObjectURL(
    new Blob([ " self.onmessage = function (evt) {\
        console.log(evt.data);\
        throw new Error('SOMETHING.WENT.WRONG.'); } "
    ])
));
w.onerror = function (err) {
    console.log('worker is suffering!', err)
};
w.postMessage(123);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接