js中foreach会先执行吗
时间: 2024-06-13 07:06:02 浏览: 58
关于JavaScript中forEach和each用法浅析
在JavaScript中,forEach方法不会按顺序执行,而是并发执行异步任务。这意味着它不会等待异步任务执行完成,而是继续执行下一个任务。这与for of和普通的for循环不同,它们可以顺序执行异步任务。forEach为什么是并发执行呢?在tc39的文档中,第五点说明forEach会用while循环判断当前的索引是否小于数组的length,如果小于会一直执行下去,不会等待异步任务执行完成。以下是一个简单的示例:
```javascript
const arr = [1, 2, 3];
arr.forEach(async (num) => {
const result = await someAsyncFunction(num);
console.log(result);
});
console.log('Done');
```
在这个示例中,forEach方法会并发执行异步任务,而不会等待异步任务完成。因此,'Done'会在异步任务完成之前被输出。如果你想要顺序执行异步任务,可以使用for of或普通的for循环。以下是一个使用for of的示例:
```javascript
const arr = [1, 2, 3];
for (const num of arr) {
const result = await someAsyncFunction(num);
console.log(result);
}
console.log('Done');
```
在这个示例中,for of循环会顺序执行异步任务,并等待异步任务完成后再执行下一个任务。因此,'Done'会在所有异步任务完成后被输出。
阅读全文