鉴于我有一个简单的工作脚本:
// 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
似乎是随机触发的。有时适用于两种情况之一,有时适用于两种情况。
我哪里错了?
更新
之前应该尝试过,但只是在 Firefox 和 Safari 中运行测试,它按预期工作。所以这似乎是一个 Chrome 错误。
即使更新到最新版本的 Chrome (30.0.1599.69),问题仍然存在,并且似乎与平台无关。
我将向 Chrome 团队提交一个错误。
更新