使用promise.all 实现forEach+内部异步操作,下方代码await

需求:先打印下方123

a.forEach(()=>{
await funcA()
})
console.log("1231231231")

思路:

你应该使用 map() 来创建一个包含异步操作的 Promise 数组,并使用 Promise.all() 来等待所有的异步操作完成。

实现:

const asyncFunction = async () => {
  const promises = arr.map(async () => {
    await funcA();
  });
  
  // 等待所有异步操作完成
  await Promise.all(promises);
  
  console.log("1231231231"); // 在所有异步操作完成后执行
};

asyncFunction();
  1. arr.map():我们用 map() 替代了 forEach()map() 会返回一个新的数组,其中每个元素都是一个 Promise
  2. Promise.all(promises)Promise.all() 等待所有的 Promise 完成后,才会执行后面的代码(即 console.log("1231231231"))。

通过这种方式,console.log("1231231231") 会等到 funcA() 执行完毕之后才被打印出来。

posted @ 2025-02-06 18:05  SimoonJia  阅读(67)  评论(0)    收藏  举报