如何在 JavaScript 的 forEach 循环中正确使用 async/await?
大家好!我是 JavaScript 新手,正在尝试理解异步。我有一个 URL 数组,想使用 `async/await` 顺序加载每个 URL 的数据。我决定使用 `forEach`,但遇到了问题:我的代码不会等待每个请求完成,而是同时启动所有请求。
这是我的代码:
```javascript
const urls = ['/api/user/1', '/api/user/2', '/api/user/3'];
async function fetchUserData(url) {
const response = await fetch(url);
return await response.json();
}
async function loadAllUsers() {
urls.forEach(async (url) => {
const userData = await fetchUserData(url);
console.log('User loaded:', userData);
});
console.log('All users loaded!');
}
loadAllUsers();
```
当我运行这段代码时,我在控制台中看到 "All users loaded!" 消息在调用 `loadAllUsers()` 后立即出现,然后用户数据才出现。为什么 `await` 在 `forEach` 内部不起作用?我该如何正确组织?