繁体   English   中英

等待 Javascript 异步函数中的问题

[英]Await question in Javascript async functions

async abc(){
await some().then(() => {
   //do inside then
});

//other code 
}

"await" 是只等待 some() 还是等待 some() 及其 then(),然后再转到 //other 代码? 基本上问题是,在转到下一个语句之前,等待是否也在 then 部分完成。

some().then()返回一个新的 promise 并且await等待这个新的 promise,所以它会等待.then()处理程序和它可能在经过await之前返回的任何 promise。 换句话说,它等待整个承诺链。


通常,在同一语句中混合await.then()并不是很好的风格,因为您通常希望坚持使用await而不是.then()如下所示:

async abc(){
    let result = await some();
    // do something with result

    //other code 
}

这为您提供了await启用的更简单的外观和更有序的代码设计。

您也可以使用箭头函数来实现这一点。

  const some = () => 'something';

  const abs = async () => {

     const result_from_some = await some();

     // do something with result_from_some
   }

但是请,如果' result_from_some '中的值可能会改变,那么最好使用let而不是const

希望这可以帮助某人。

暂无
暂无

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

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