如何找出未处理的 Promise 拒绝发生的位置? [复制]

Posted

技术标签:

【中文标题】如何找出未处理的 Promise 拒绝发生的位置? [复制]【英文标题】:How do I find out where an unhandled promise rejection occured? [duplicate] 【发布时间】:2017-11-03 20:16:06 【问题描述】:

快速前言:我了解 Promises,我了解解决和拒绝。这不是问题。

(node:14104) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: "callback" argument must be a function
(node:14104) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.\

我在我的代码中的某个地方理解了一个“回调”参数,它应该是一个函数,但不是。这也不是我的问题。

如何找到发生未处理拒绝的代码行?

【问题讨论】:

【参考方案1】:

node 的'unhandledRejection' event 应该会解开你的谜团:

process.on('unhandledRejection', (reason, promise) => 
    console.warn('Unhandled promise rejection:', promise, 'reason:', reason.stack || reason);
);

https://repl.it/I3JJ/2

【讨论】:

如果使用 reject() 函数拒绝了一个承诺,它将无法工作。 工作就像一个魅力!谢谢。 @mikemaccana 欢迎你:)

以上是关于如何找出未处理的 Promise 拒绝发生的位置? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在Angular 2中拒绝Promise时未处理的Promise拒绝[重复]

使用 axios 时可能出现未处理的 Promise 拒绝、网络错误

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

(node:11254)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝id:1):TypeError:无法读取null的属性'l

未处理的Promise拒绝:NotSupportedError(DOM异常9):不支持该操作

android 应用程序可能出现未处理的 Promise Rejection