版本7中的Node.js具有用于处理promise的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.
不幸的是,没有提到丢失渔获物的那一行。有没有找到所有方法而不检查每个try / catch块的方法?
您可以使用Bluebird Promise库,它很可能会为您提供堆栈跟踪。
—
jfriend00
如果前两个注释没有帮助,那么
—
Jaromanda X
Can't set headers after they are sent.
应该给您一个提示,它可能在代码中发生什么地方(即,在已经发送了标头之后,您正在设置标头的某个地方-大概是因为未能理解异步代码) ,但这是一个猜测)
嗨,这些消息可以肯定地帮助您找到错误在代码中的位置,但要知道那行并不容易。
—
user1658162
@ jfriend00事实证明,在这种情况下,异步函数引发了错误-这些内部节点对异步函数的承诺永远不会使用Bluebird,因此拥有Bluebird在这种情况下无济于事。
—
亚当·里斯