NodeJS - 查找未处理的承诺拒绝行
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NodeJS - 查找未处理的承诺拒绝行相关的知识,希望对你有一定的参考价值。
我正在使用事件处理程序来捕获未处理的承诺拒绝,在SO上找到:
process.on('unhandledRejection', function(error, promise) {
console.error('UNHANDLED REJECTION - Promise: ', promise, ', Error: ', error, ').');
});
由于我使用的是nodejs + express,因此打印代码语句的行号很棘手。我有一个自定义的console.log2方法,但我正在尝试使用拒绝处理程序完成相同的操作。
我已经尝试了各种调用程序/堆栈跟踪技巧和错误堆栈等,但这些方法都没有正确显示reject()语句所在的行。
编辑
为了澄清,我得到的打印输出显示上面的console.error语句所在的行号(每次都是同一行),然后通过各种promise库文件/行向后工作。它完全跳过/错过了reject()语句本身所在的行。
答案
很大程度上取决于库,我无法重现它,但我建议你试试这个替代方案:
process.on('unhandledRejection', up => { throw up });
应该比报告承诺和错误更有效,但也许在您的特定情况下,它可能也无法正常工作。试试吧!...
以上是关于NodeJS - 查找未处理的承诺拒绝行的主要内容,如果未能解决你的问题,请参考以下文章