バージョン7のNode.jsには、promiseを処理するための非同期/待機シンタックスシュガーがあり、私のコードでは次の警告が頻繁に表示されます。
(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.
残念ながら、キャッチが欠落している行への参照はありません。すべてのtry / catchブロックをチェックせずにそれを見つける方法はありますか?
Bluebird promiseライブラリを使用すると、スタックトレースが得られる可能性があります。
—
jfriend00
前の2つのコメントが役に立たない
—
Jaromanda X
Can't set headers after they are sent.
場合は、コード内でそれが発生している可能性がある場所(つまり、ヘッダーがすでに送信された後にヘッダーを設定している場所-おそらく非同期コードの理解に失敗したため) 、しかしそれは推測です)
こんにちはそのメッセージは、コードのどこにバグがあるかを確実に見つけるのに役立ちますが、行を知るほど簡単ではありません。
—
user1658162 2017年
@ jfriend00非同期関数がエラーをスローしている状況であることが判明しました-非同期関数に対するこれらの内部ノードプロミスはBluebirdを使用しないため、Bluebirdを使用してもそのシナリオでは役に立ちません。
—
アダム・レイス