簡単なワーカー スクリプトがあるとします。
// error_worker.js:
onmessage = function(event) {
throw new Error('Error for ' + event.data.name);
};
同じスクリプトに対して複数のワーカー インスタンスを作成する場合:
var worker1 = new Worker("error_worker.js"),
worker2 = new Worker("error_worker.js");
function errorHandler(error) {
console.log(error.message);
error.preventDefault();
};
worker1.onerror = errorHandler;
worker2.onerror = errorHandler;
worker1.postMessage({ name: 'worker1' });
worker2.postMessage({ name: 'worker2' });
関数errorHandler
は一見ランダムにトリガーされます。2 つのインスタンスのいずれかの場合もあれば、両方の場合もあります。
どこが間違っていますか?
アップデート
以前にこれを試す必要がありましたが、Firefox と Safari でテストを実行したところ、期待どおりに動作しました。したがって、これは Chrome のバグのようです。
Chrome の最新バージョン (30.0.1599.69) に更新した後も問題は解決せず、プラットフォームに依存しないようです。
Chrome チームにバグを報告します。
アップデート