Cómo usar correctamente async/await dentro de un bucle forEach en JavaScript
¡Hola a todos! Empecé a estudiar JavaScript asíncrono y me encontré con un problema que me dejó completamente perplejo.
Tengo un array de URLs y quiero cargar los datos de cada una de forma secuencial, usando `fetch` y `async/await`. Escribí este código:
```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('Cargado:', data);
});
console.log('¡Todas las solicitudes han sido enviadas!');
}
fetchUrls();
```
Esperaba que primero se cargaran los datos de la primera URL, luego de la segunda, luego de la tercera, y solo después se mostrara el mensaje "¡Todas las solicitudes han sido enviadas!". Pero en la práctica veo que el mensaje se muestra inmediatamente, y los datos llegan en orden arbitrario, a menudo al mismo tiempo.
Ya leí que `forEach` no funciona con `async/a