Node.js od wersji 7 ma cukier składniowy async / await do obsługi obietnic, a teraz w moim kodzie dość często pojawia się następujące ostrzeżenie:
(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.
Niestety nie ma odniesienia do wiersza, w którym brakuje haczyka. Czy jest sposób, aby go znaleźć bez sprawdzania każdego bloku try / catch?
unhandledRejection
pomoże Ci rejestracja na wydarzenie Node ? Zobacz dokumentację . Twoje wywołanie zwrotne pobiera Error
obiekt i rzeczywisty Promise
, i uważam, że Error
obiekt może zawierać ślad stosu.
Can't set headers after they are sent.
powinien dać ci wskazówkę, gdzie w twoim kodzie może się to dziać (tj. Gdzieś ustawiasz nagłówki po tym, jak nagłówki zostałyby już wysłane - prawdopodobnie z powodu braku zrozumienia kodu asynchronicznego , ale to przypuszczenie)