Open 981377660LMT opened 7 months ago
await
关键字等待每个 Promise 完成,这样就会按照顺序一个接一个地执行 Promise。例如:for (const item of items) {
await someAsyncFunction(item);
}
items.forEach(item => someAsyncFunction(item));
但是,这样的代码无法知道所有 Promise 何时完成。
Promise.all
。Promise.all
接收一个 Promise 对象的数组作为参数,当这些 Promise 对象全部完成时,Promise.all
的 Promise 对象才会完成。例如:await Promise.all(items.map(item => someAsyncFunction(item)));
这样,所有的 Promise 会同时开始,并且你可以知道它们何时全部完成。
await await 关键字的作用是等待 Promise 完成并返回结果,它会阻塞后面代码的执行,直到 Promise 完成。 因此,如果你在循环中使用 await,那么每次循环都会等待 Promise 完成,这就是串行执行,而不是并发。 如果你想要在使用 await 的同时实现并发,那么你需要使用 Promise.all。
不用await for 循环中调用promise即可。