嵌套异步/等待javascript
这是有效的异步/等待逻辑:从另一个try/catch中调用try/catch吗嵌套异步/等待javascript,javascript,asynchronous,async-await,try-catch,Javascript,Asynchronous,Async Await,Try Catch,这是有效的异步/等待逻辑:从另一个try/catch中调用try/catch吗 //within async function... try { await asyncFunctionFirst(); } catch (errFirst) { try { await asyncFunctionSecond(); } catch (errSecond) {
//within async function...
try {
await asyncFunctionFirst();
} catch (errFirst) {
try {
await asyncFunctionSecond();
} catch (errSecond) {
// return errSecond response
}
//return errFirst response
}
//return response ok
是的,这是有效的语法。但是我不会这样写。宁可使用
try {
await asyncFunctionFirst();
return …; // response ok
} catch (errFirst) {
try {
await asyncFunctionSecond();
return …; // errFirst response
} catch (errSecond) {
return …; // errSecond response
}
}
(如果您还想捕获
…
部分的异常-如果不是,您的版本就可以了,请参见备选方案)为什么它无效?我不确定该方法是否可行,或者是否有我缺少的更优雅的解决方案。不,这是可能的最优雅的方法(假设您需要调用这些方法/执行该逻辑)。异步/等待
的目的正是为了使异步逻辑能够以这种方式表示。根据“等待运算符用于等待承诺。它只能在异步函数中使用。”因此,我猜它是有效的。您测试过它是否运行了吗?好的,非常感谢