如何从node-webworker-threads获取控制台错误?

时间:2015-01-27 18:48:19

标签: javascript node.js multithreading error-handling web-worker

我正在开发一个node.js应用程序。我正在使用webworker-threads包来分离一些CPU阻塞任务。但是,我的线程代码中未被捕获的错误不会被发送到控制台。相反,线程只是默默地失败。最简单的案例说明了这一点:

var Threads = require('webworker-threads');
this.testThread = new Threads.Worker( function() {
      console.log("This is the test thread. The next line should throw an error.");
      undefinedFunction();
    } );

由于我的实际应用程序正在调用一个单独的js文件作为线程,我也没有看到报告的任何语法错误。我应该抓住一些未记录的错误事件吗?我的环境可能有问题吗?

2 个答案:

答案 0 :(得分:1)

尝试绑定到worker的onerror事件:

var webpackWorker = new Worker(function() {             
    this.onmessage = function(event) {
       throw ('test');
    };
});

webpackWorker.onerror = function (event) {
    console.log(event);
}

webpackWorker.postMessage("dummy");

答案 1 :(得分:0)

将错误记录在worker中。on('error')方法对我确实有效。

worker.on('error', function (error) {
    console.log(error);
})