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 就可以保证数组遍历是异步的。