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

时间:2017-10-13 14:42:50

标签: 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)
  })

因为throw new Error(err)在承诺中是徒劳的。然而,这感觉有点笨拙,我想知道是否有更标准的方法来做到这一点。

1 个答案:

答案 0 :(得分:2)

process.exit()正是您应该如何结束流程的结果。根本没什么“hacky”的。

您已正确处理错误,因此确定您要中止该过程并以文档方式结束该过程。我认为一个未被捕获的例外更加苛刻。

如果您认为可能在未处理的异常中丢失了,那么您可以在退出之前将任何想要的内容输出到控制台以用于诊断目的。