2014-07-18 3 views
1

웹 작업자는 실패 할 경우 게시 된 데이터를 찾는 방법을 제공합니까?웹 작업자 오류

그래서 다음 코드가있는 경우 onerror 처리기에서 someData의 내용을 찾을 수 있습니다. 실패하거나 그냥 추적해야합니까?

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

답변

3

웹 노동자들은 실패하면 데이터가 그들에 게시 있었는지 알아 내기의 전용 방법 을 제공하지 않습니다.

그러나 당신이 중 하나를 (당신이 메시지 이벤트에 액세스 할 수 있습니다) 작업자의 내부에서 onmessage 처리기에서 깊은 검사를 외부에서 onerror을 처리하거나 할 수있는 수동으로 할 매우 쉽습니다 :

// 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) 
}