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
中にエラーあなたのあなたが持っているだろうようなコードは、巡回連鎖である
—
海洋堂
const cyclic = Promise.resolve().then(()=>cyclic);
ので、未処理の約束拒否を検索しません、この1は、ノードの内部コードです。
問題を引き起こすいくつかのコードが役立つでしょう。
—
x00
コードを実行
—
n3ko
npm i bluebird
して追加const Promise = require('bluebird')
すると、より詳細なエラーメッセージが表示される場合があります
を使用してノードを実行しようとすると
—
Karen Grigoryan
--trace-warnings
、未処理の拒否には追跡可能な警告が表示されます