从异步函数传播异常的正确方法是什么?

时间:2018-02-08 13:35:41

标签: javascript node.js

我有一个失败的异步功能:

async function main() {
    // fails
    throw 'some error';
}

main();

将此异常传播到结束程序执行的正确方法是什么?

这是:

main().catch(err => { console.log(err); process.exit(1); });

正确的方法还是有更好的模式?

1 个答案:

答案 0 :(得分:1)

有一种更好的方法: 您可以收听"未处理的拒绝"这样的事件:

process.on('unhandledRejection', error => {
     console.log('unhandledRejection', error) //if you want to log the error
     process.exit(1);
});

通过这样做,您不必捕获可能抛出的所有异步函数。如果catch函数出错,你可以保存自己。

这将删除不需要的警告。