js foreach是异步的吗

JavaScript中的Array.prototype.forEach()方法是同步执行的。它会按顺序依次对数组中的每一项执行给定的回调函数。 forEach()方法不会等待回调函数执行完成,而是立即返回。这意味着如果回调函数中包含异步操作,则它们可能在forEach()方法返回后继续执行。

如果你需要在所有元素都处理完后执行一些操作,可以使用 Array.prototype.map() 或 Array.prototype.reduce() 方法,它们都支持第二个参数,可以在所有元素处理完后执行。

如果你需要异步遍历数组,可以使用 async/await 或 Promise.all()

for example:

const arr = [1, 2, 3];
arr.forEach(async (val) => {
  await new Promise(resolve => setTimeout(() => {
    console.log(val);
    resolve();
  }, 1000));

如果使用 async/await 就可以保证数组遍历是异步的。

  •