我有一个失败的异步功能:
async function main() {
// fails
throw 'some error';
}
main();
将此异常传播到结束程序执行的正确方法是什么?
这是:
main().catch(err => { console.log(err); process.exit(1); });
正确的方法还是有更好的模式?
答案 0 :(得分:1)
有一种更好的方法: 您可以收听"未处理的拒绝"这样的事件:
process.on('unhandledRejection', error => {
console.log('unhandledRejection', error) //if you want to log the error
process.exit(1);
});
通过这样做,您不必捕获可能抛出的所有异步函数。如果catch函数出错,你可以保存自己。
这将删除不需要的警告。