在 Javascript 个异步函数中等待问题
Await question in Javascript async functions
async abc(){
await some().then(() => {
//do inside then
});
//other code
}
"await" 是只等待 some() 还是等待 some() 和它的 then() 然后再去 //other 代码?基本上问题是 await 是否也在 then 部分等待在移动到下一个语句之前完成。
some().then()
return 是一个新的承诺,await
等待这个新的承诺,因此它将等待 .then()
处理程序和它可能 return 在继续通过 await
之前。换句话说,它等待整个承诺链。
一般来说,在同一条语句中混合使用 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 而不是常数
希望这对某人有所帮助。
async abc(){
await some().then(() => {
//do inside then
});
//other code
}
"await" 是只等待 some() 还是等待 some() 和它的 then() 然后再去 //other 代码?基本上问题是 await 是否也在 then 部分等待在移动到下一个语句之前完成。
some().then()
return 是一个新的承诺,await
等待这个新的承诺,因此它将等待 .then()
处理程序和它可能 return 在继续通过 await
之前。换句话说,它等待整个承诺链。
一般来说,在同一条语句中混合使用 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 而不是常数
希望这对某人有所帮助。