javascript - 嵌套异步/等待javascript

标签 javascript asynchronous async-await try-catch

这是有效的异步/等待逻辑:从另一个 try/catch 中调用 try/catch 吗?

//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
    }
}

(如果您还想从 部分捕获异常 - 如果不是,您的版本很好,替代方案请参见 here)

关于javascript - 嵌套异步/等待javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47593542/

相关文章:

c# - 什么是创建可等待函数的正确方法

javascript - arguments.callee 异步时不返回可调用函数

javascript - Observables - 防止数组的 onCompleted

javascript - 如何让容器从上到下滚动

javascript - 在 sails.js 中返回异步响应

validation - 一般 : asynchonious validation in angular2

javascript - 为什么我从 Loopback4 收到“访问被拒绝”错误,同时能够使用相同的凭据从 MySql 工作台进行连接

javascript - 在 Mozilla Rhino 中转换为 java 对象

javascript - 等待多个 for-each 语句完成

javascript - 如何在循环中运行 fetch()?