Promesas en ECMAScript 11: Uso de Promise.allSettled
Clase 28 de 35 • Curso de ECMAScript: Historia y Versiones de JavaScript
Contenido del curso
- 4

Características de ECMAScript 6 para JavaScript Moderno
15:30 - 5

Template Literals y Multilínea en ECMAScript 6
08:11 - 6

Asignación de Parámetros por Defecto en ECMAScript 6
05:46 - 7

Desestructuración de Arrays y Objetos en JavaScript ECMAScript 6
05:33 - 8

Uso del Operador de Propagación y Parámetros Rest en JavaScript
07:30 - 9
Playground: Combina objetos JSON con el Spread Operator
00:00 - 10

Asignación y manejo de objetos en ECMAScript 6
05:42 - 11

Promesas en JavaScript: Manejo del Asincronismo con ECMAScript 6
08:10 - 12

Clases y Herencia en JavaScript: Sintaxis y Aplicaciones
18:54 - 13

Uso de Módulos en JavaScript ES6
09:48 - 14
Playground: Obtén una lista de películas
00:00 - 15

Generators en JavaScript: Cómo implementar y usar iteradores personalizados
07:19 - 16
Playground: Generador de identificadores para michis
00:00 - 17

Método ADD en ECMAScript 6: Agregando Elementos a un Set
04:36
En alguna situación necesitarás manejar varias promesas y obtener sus resultados. ¿Cómo? Utilizando los métodos Promise.all y Promise.allSettled.
Promise.all
El método Promise.all sirve para manejar varias promesas al mismo tiempo. Recibe como argumento un array de promesas.
Promise.all([promesa1, promesa2, promesa3])
.then(respuesta => console.log(respuesta))
.catch(error => console.log(error))
El problema es que Promise.all() se resolverá, si y solo si todas las promesas fueron resueltas. Si al menos una promesa es rechazada, Promise.all será rechazada.
Promise.allSettled
Promise.allSettled() permite manejar varias promesas, que devolverá un array de objetos con el estado y el valor de cada promesa, haya sido resuelta o rechazada.
const promesa1 = Promise.reject("Ups promesa 1 falló")
const promesa2 = Promise.resolve("Promesa 2")
const promesa3 = Promise.reject("Ups promesa 3 falló")
Promise.allSettled([promesa1, promesa2, promesa3])
.then(respuesta => console.log(respuesta))
/* [
{
status: 'rejected',
reason: 'Ups promesa 1 falló'
},
{ status: 'fulfilled', value: 'Promesa 2' },
{
status: 'rejected',
reason: 'Ups promesa 3 falló'
}
] */
¿Debería usar Promise.allSettled en lugar de Promise.all? No, porque ambas son muy útiles dependiendo cómo quieras manejar tus promesas.
Contribución creada por Andrés Guano (Platzi Contributor).