Promise.allSettled es un método en JavaScript que se utiliza para esperar a que todas las promesas en un conjunto hayan finalizado, sin importar si fueron resueltas o rechazadas. A diferencia de Promise.all, no se detiene si alguna de las promesas falla, lo que permite manejar los resultados de cada una de ellas de manera individual.
Promise.allSettled recibe como argumento un array de promesas y devuelve una nueva promesa que se resuelve cuando todas las promesas en el array han terminado. El resultado de Promise.allSettled es un array de objetos que indican el estado (fulfilled o rejected) y el valor o la razón de cada promesa.
Es especialmente útil cuando se quiere manejar cada resultado de las promesas sin interrumpir el flujo si alguna falla.
const promesa1 = Promise.resolve('Éxito');
const promesa2 = Promise.reject('Error');
const promesa3 = Promise.resolve('Otro éxito');
Promise.allSettled([promesa1, promesa2, promesa3])
.then(resultados => {
resultados.forEach((resultado, index) => {
if (resultado.status === 'fulfilled') {
console.log(`Promesa ${index + 1} cumplida:`, resultado.value);
} else {
console.log(`Promesa ${index + 1} rechazada:`, resultado.reason);
}
});
});
Promesa 1 cumplida: Éxito
Promesa 2 rechazada: Error
Promesa 3 cumplida: Otro éxito
const promesas = [
Promise.resolve('Primera promesa'),
Promise.reject('Segunda promesa falló'),
Promise.resolve('Tercera promesa')
];
// Con Promise.all
Promise.all(promesas)
.then(result => console.log('Resultado:', result))
.catch(error => console.log('Error en alguna promesa:', error));
// Con Promise.allSettled
Promise.allSettled(promesas)
.then(resultados => console.log('Resultados de todas las promesas:', resultados));
Puedes consultar más información sobre Promise.allSettled en la documentación oficial de MDN.
Jorge García
Fullstack developer