我正在开发一个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文件作为线程,我也没有看到报告的任何语法错误。我应该抓住一些未记录的错误事件吗?我的环境可能有问题吗?
答案 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);
})