即
async asyncfunction(){
try{
await method1();
await method2();
}
catch(error){
console.log(error);
}
}
给定method1()和method2()是异步函数。每个await方法都应该有一个try / catch块吗?是否有更清晰的方式来写这个?我试图避免'然后'和' .catch'链接。
答案 0 :(得分:10)
使用一个包含多个await
操作的try / catch块很好。
await
运算符存储其父async
函数'执行上下文并返回事件循环。 await
运算符的执行在使用已结算状态和其操作数的值回调时恢复。
恢复后,await
恢复先前保存的执行上下文,并返回操作数promise作为await
表达式的结果,或者抛出被拒绝操作数的拒绝原因。
try/catch
块调用是保存和恢复之前和之后的执行上下文的一部分。因此,多个await
操作不会干扰他们共享的外部try
块的行为。将调用catch
块,其中包含拒绝的try
块中等待的任何承诺的拒绝原因。