Junior
¿Para qué sirve Promise.all?
sobes.tech AI
Respuesta de la IA
Promise.all acepta un objeto iterable de promesas (por ejemplo, un array) y devuelve una nueva promesa. Esta nueva promesa se cumple cuando todas las promesas pasadas se cumplen con éxito. El resultado será un array de valores, correspondientes a los resultados de cada una de las promesas pasadas, en el mismo orden.
Si al menos una de las promesas pasadas se rechaza, entonces Promise.all se rechaza inmediatamente con la razón del rechazo de la primera promesa que se rechazó.
Aplicaciones:
- Ejecución simultánea de varias operaciones asíncronas que no dependen unas de otras.
- Esperar a que un conjunto de operaciones finalice antes de pasar al siguiente paso.
Ejemplo:
async function fetchData() {
const urls = [
'https://api.example.com/data1',
'https://api.example.com/data2',
'https://api.example.com/data3',
];
try {
// Cargar datos de varias URL al mismo tiempo
const responses = await Promise.all(urls.map(url => fetch(url)));
// Verificar la éxito de cada respuesta
for (const response of responses) {
if (!response.ok) {
// Si alguna respuesta no es exitosa, lanzar un error
throw new Error(`HTTP error! status: ${response.status}`);
}
}
// Parsear todas las respuestas a JSON
const jsonData = await Promise.all(responses.map(response => response.json()));
// Ahora jsonData es un array con los resultados de todas las solicitudes
console.log(jsonData);
} catch (error) {
// Manejar errores si alguna promesa fue rechazada (Fetch o JSON.parse)
console.error('Error fetching data:', error);
}
}
fetchData();