我正在尝试从Node.js中的Promise中找到未处理的拒绝的来源
我尝试使用--async-stack-traces
选项升级到节点版本12,并使用以下命令监听它们:
process.on("unhandledRejection",( reason, promise ) => {
console.log(reason);
console.log(promise);
});
但是我仍然看不到任何有用的堆栈跟踪信息来帮助我找到罪魁祸首!
UnhandledPromiseRejectionWarning: TypeError: Chaining cycle detected for promise #<Promise>
at process._tickCallback (internal/process/next_tick.js:68:7)
(node:89675) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 11)
运行节点v10.10.0
有多重承诺吗?
—
Prabhjot Singh Kainth,
您的代码中的错误是循环链接,就像您使用时一样
—
Kaiido
const cyclic = Promise.resolve().then(()=>cyclic);
,因此不要搜索未处理的诺言拒绝,这是在节点的内部代码中。
一些代码增加了这个问题将是有帮助的。
—
x00
运行
—
n3ko
npm i bluebird
并添加const Promise = require('bluebird')
到代码中,可能会给您更详细的错误消息
尝试运行带有的节点
—
Karen Grigoryan
--trace-warnings
,未处理的拒绝伴随着您可以跟踪的警告