使用非零代码退出asynchronous脚本的典型方法

假设你有一个看起来像这样的脚本

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)在promise中是徒劳的。 然而,这感觉有点hacky,我想知道是否有一个更标准的方法来做到这一点。

process.exit()正是你应该如何结束你的过程,如果你想结束它。 没有什么“哈克”的。

您正确地发现了一个错误,决定因为错误而中止过程,并以文档化的方式结束了过程。 我会考虑一个未被捕获的exception更多的黑客。

你可以输出到控制台任何你想要的诊断目的退出之前,如果这是你以为你可能会从一个未处理的exception中缺less。