1. ホーム
  2. node.js

[解決済み】Node.jsのUnhandledPromiseRejectionWarningでどのプロミスが処理されないかを見つけるには?

2022-04-11 22:13:53

質問

Node.jsはバージョン7からプロミスを扱うためのasync/await構文シュガーを持っていますが、現在私のコードでは以下の警告がよく出ます。

(node:11057) UnhandledPromiseRejectionWarning: Unhandled promise 
rejection (rejection id: 1): ReferenceError: Error: Can't set headers 
after they are sent.
(node:11057) 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.

残念ながら、catchが抜けている行の参照はありません。 すべてのtry/catchブロックをチェックせずにそれを見つける方法はないのでしょうか?

解決方法は?

聞く unhandledRejection プロセスのイベント。

process.on('unhandledRejection', (reason, p) => {
  console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
  // application specific logging, throwing an error, or other logic here
});