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 - 查找未处理的承诺拒绝行的主要内容,如果未能解决你的问题,请参考以下文章

可能的未处理承诺拒绝(id:1):TypeError:网络请求失败

请求失败,状态码 400

可能未处理的承诺拒绝(id 0)反应原生

使用 useMutation 可能出现未处理的承诺拒绝警告

未处理的承诺拒绝条带支付意图示例

阿波罗客户端- [未处理的承诺拒绝:错误:响应不成功:收到状态代码 400]