NodeJS - 查找未处理的承诺拒绝行

时间:2017-11-09 22:33:46

标签: javascript node.js promise event-handling

我正在使用事件处理程序捕获未处理的承诺拒绝,在SO上找到:

process.on('unhandledRejection', function(error, promise) {
    console.error('UNHANDLED REJECTION - Promise: ', promise, ', Error: ', error, ').');
});

由于我使用的是nodejs + express,因此打印代码语句的行号很棘手。我有一个自定义的console.log2方法,但我正在尝试使用拒绝处理程序完成相同的操作。

我尝试了各种调用程序/堆栈跟踪技巧和错误堆栈等,但这些方法都没有正确显示reject()语句所在的行。

修改

为了澄清,我得到的打印输出显示上面的console.error语句所在的行号(每次都是同一行),然后通过各种promise库文件/行向后工作。它完全跳过/错过了reject()语句本身所在的行。

1 个答案:

答案 0 :(得分:2)

非常依赖于库,我无法重现它,但我建议您尝试使用此替代方法:

process.on('unhandledRejection', up => { throw up });

应该比报告承诺和错误更有效,但也许在您的特定情况下,它可能也无法正常工作。试试吧!...

相关问题