如何在JavaScript的forEach循环中正确使用async/await?
大家好!我开始学习异步JavaScript,遇到了一个让我完全困惑的问题。
我有一个URL数组,想使用`fetch`和`async/await`依次从每个URL加载数据。我写了这样的代码:
```javascript
const urls = ['https://api.example.com/data/1', 'https://api.example.com/data/2', 'https://api.example.com/data/3'];
async function fetchUrls() {
urls.forEach(async (url) => {
const response = await fetch(url);
const data = await response.json();
console.log('已加载:', data);
});
console.log('所有请求已发送!');
}
fetchUrls();
```
我期望先加载第一个URL的数据,然后是第二个,再是第三个,最后才输出“所有请求已发送!”的消息。但实际上我看到消息立即输出,而数据以随机顺序到达,通常同时到达。
我已经了解到`forEach`不配合`async/await`工作。