网络工作者onerror

时间:2014-07-18 21:51:36

标签: javascript web-worker

网络工作者是否提供了一些方法来找出哪些数据在失败时发布给他们?

所以如果我有以下代码,那么无论如何都要在onerror处理程序中查找someData的内容,如果它失败了,或者我只是要跟踪它?

var someData = {...};
myWorker.postMessage(someData);

1 个答案:

答案 0 :(得分:4)

网络工作人员没有提供任何专用方法,如果他们失败,他们会找出发布给他们的数据。

但手动操作非常简单,您可以从外部处理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);