简体   繁体   English

嵌套异步/等待JavaScript

[英]nesting async/await javascript

Is this valid async/await logic: calling try/catch from within another 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 

Yes, it's valid syntax. 是的,这是有效的语法。 However I would not write it like this. 但是我不会这样写。 Rather use 宁可使用

try { 
    await asyncFunctionFirst();
    return …; // response ok 
} catch (errFirst) {
    try {
        await asyncFunctionSecond();
        return …; // errFirst response
    } catch (errSecond) {
        return …; // errSecond response
    }
}

(if you would also want to catch exceptions from the parts - if not, your version is fine, for alternatives see here ) (如果您还想从部分中捕获异常-如果不是,则您的版本很好,有关替代方法,请参见此处

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM