Javascript 使用非零代码退出异步脚本的规范方法

Javascript 使用非零代码退出异步脚本的规范方法,javascript,node.js,error-handling,Javascript,Node.js,Error Handling,假设您有一个脚本 async function main() { await somethingThatCanFail() } main() 目前我正在使用非零代码退出 main() .then(() => console.log('success message and stuff') .catch(function(err) { console.error(err) process.exit(1) }) 因为抛出新错误(err)在承诺中是无效的。然

假设您有一个脚本

async function main() {
  await somethingThatCanFail()
}

main()
目前我正在使用非零代码退出

main()
  .then(() => console.log('success message and stuff')
  .catch(function(err) {
    console.error(err)
    process.exit(1)
  })
因为
抛出新错误(err)
在承诺中是无效的。然而,这感觉有点令人讨厌,我想知道是否有更标准的方法来做这件事。

process.exit()
正是您想要结束流程的方式。这一点也不“令人讨厌”

您正确地部署了一个错误,决定因为该错误而中止该流程,并以文档化的方式结束该流程。我会考虑一个没有例外的问题,更糟糕的是。
如果您认为未处理的异常可能会丢失任何诊断信息,则可以在退出前将这些信息输出到控制台。

process.exit()
正是您希望结束流程的方式。这一点也不“令人讨厌”。您处理了一个错误,决定中止该进程并结束了该进程。我会考虑一个不寻常的例外,更糟糕的是,我认为这正是你应该做的,直到有一个标志,使未经处理的拒绝中止进程。不过你已经可以了。好的,谢谢@jfriend00和Bergi