【发布时间】:2021-03-03 15:40:39
【问题描述】:
我正在查看 MDN documentation 的异步等待,发现有一个 promise.all 的替代方案
所以,
如果 coffee 、 tea 和 description 是三个承诺,我们可以全部等待
let values = await Promise.all([coffee, tea, description]);
但是 MDN 也给出了慢速和快速异步等待的例子:
慢速异步等待示例:
async function timeTest() {
await timeoutPromise(3000);
await timeoutPromise(3000);
await timeoutPromise(3000);
}
快速异步等待示例:
async function timeTest() {
const timeoutPromise1 = timeoutPromise(3000);
const timeoutPromise2 = timeoutPromise(3000);
const timeoutPromise3 = timeoutPromise(3000);
await timeoutPromise1;
await timeoutPromise2;
await timeoutPromise3;
}
我对快速异步等待感到困惑。它是否类似于promise.all()?是不是比promise.all()?更好
如果我们在不同的行中编写多个等待,它与慢速异步等待有什么不同?
【问题讨论】:
-
"它的工作原理是否类似于 promise.all()?" 基本上适用于更简单的场景 - 是的。 “比 promise.all() 更好吗?”定义“更好”。
-
Promise.all如果您不知道需要等待多少个承诺,这很好。什么是“慢速异步等待”? -
“快”方法的优点是它并行运行进程,而“慢”方法串联运行它们。
Promise.all也并行运行。
标签: javascript asynchronous async-await