[英]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.