是因为foreach循环是同步执行的,而await关键字只能在异步方法中使用,在JavaScript中,forEach是一个数组的方法,它不支持异步处理。
如果你需要在数组的每个元素上执行异步操作,并等待每个操作完成,可以考虑使用for...of循环结合await关键字,或者使用map方法结合Promise.all方法来处理异步操作。
- 使用for...of循环和await关键字:
async function forArray(array) {
for (const item of array) {
await doSomethingAsync(item);
}
}
// 调用示例
const myArr = [1, 2, 3, 4, 5];
forArray(myArr);
输出结果:
1
2
3
4
5
- 使用
map方法和Promise.all
async function forArray(array) {
await Promise.all(array.map(item => doSomethingAsync(item)));
}
// 调用示例
const myArr = [1, 2, 3, 4, 5];
forArray(myArr);