我现在可以得到未来未处理的承诺拒绝行为吗?

时间:2018-08-01 12:09:54

标签: javascript node.js promise unhandled

  

将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

我的管道应该在失败时通过并部署了在启动时崩溃的版本。如果Node.js使用非零退出代码退出,则管道将失败,并且不会部署不良版本。

是否有一种方法可以使Node.js在遇到未处理的承诺拒绝时以非零的退出代码退出,不需要我等待未来?

3 个答案:

答案 0 :(得分:2)

是的,您可以使用the unhandledRejection event on the process object

process.on('unhandledRejection', (reason, p) => {
  console.error('Unhandled Rejection at:', p, 'reason:', reason)
  process.exit(1)
});

答案 1 :(得分:2)

对于node 12及更高版本:

node --unhandled-rejections=strict

答案 2 :(得分:0)

我喜欢通过环境变量设置这些选项:

export NODE_OPTIONS="--unhandled-rejections=strict"