1

鉴于我有一个简单的工作脚本:

// 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 团队提交一个错误。

更新

铬跟踪器的问题可以在这里找到:https ://code.google.com/p/chromium/issues/detail?id=307865&sort=-modified&colspec=ID%20Pri%20M%20Iteration%20ReleaseBlock%20Cr%20Status %20Owner%20Summary%20OS%20Modified

4

0 回答 0