Contenido del curso
Configuracion
¿Qué se implementó en ES6?
- 4

let, const y arrow functions en ES6
15:29 min - 5

Template literals en JavaScript ES6
08:11 min - 6

Parámetros por defecto en funciones ES6
05:46 min - 7

Desestructuración de arrays y objetos en JavaScript
05:33 min - 8

Spread y rest parameters en JavaScript
07:30 min - 9

Playground: Combina objetos JSON con el Spread Operator
- 10

Object literals abreviados en ES6
05:42 min - 11

Promesas en JavaScript con resolve y reject
08:09 min - 12

Clases en JavaScript con getters y setters
18:54 min - 13

Módulos en JavaScript con import y export
09:48 min - 14

Playground: Obtén una lista de películas
- 15

Generators en JavaScript: control del estado
07:19 min - 16

Playground: Generador de identificadores para michis
- 17

Método add() y encadenamiento en Sets JS
04:36 min
¿Qué se implementó en ES7?
¿Qué se implementó en ES8?
¿Qué se implementó en ES9?
¿Qué se implementó en ES10?
¿Qué se implementó en ES11?
¿Qué se implementó en ES12?
¿Qué se implementó en ES13?
Recapitulación
Promise.allSettled para manejar múltiples promesas
Resumen
Cuando trabajas con varias promesas a la vez y necesitas saber el resultado de todas (sin importar si fallaron o se cumplieron), Promise.allSettled se vuelve tu mejor aliado. Esta funcionalidad de ECMAScript 11 te permite ejecutar un grupo de promesas y obtener una respuesta completa con el estado de cada una, ideal para desarrolladores que ya dominan los fundamentos de promesas en JavaScript.
¿Qué aporta Promise.allSettled frente a otras versiones?
Cada versión del estándar ECMAScript suele mejorar funcionalidades que antes fueron novedad. Y aquí viene lo interesante: este método no reemplaza a las promesas, las potencia.
¿Qué hace Promise.allSettled? Ejecuta un arreglo de promesas y devuelve un array con el estado final de cada una, ya sea fulfilled (cumplida) o rejected (rechazada), sin detenerse cuando una falla.
Esa es la diferencia clave con Promise.all, que se interrumpe ante el primer rechazo. Con allSettled siempre tienes el panorama completo.
¿Cómo se construyen las promesas para el ejemplo?
Para verlo en acción, dentro de la carpeta de ECMAScript 11 creas un archivo llamado 03-promiseAllSettled.js. La idea es generar tres promesas distintas y combinarlas.
La estructura básica de cada promesa usa una arrow function anónima con return implícito y recibe los parámetros resolve y reject:
- promiseOne: ejecuta
reject('reject')para simular un fallo. - promiseTwo: ejecuta
resolve('resolve')para una respuesta exitosa. - promiseThree: ejecuta
resolve('resolve2')con otro valor cumplido.
Un detalle importante que se menciona alrededor del [3:10]: aunque solo uses reject o resolve, debes declarar ambos parámetros en la función anónima. Si los omites, no podrás invocar el rechazo correctamente.
js const promiseOne = new Promise((resolve, reject) => reject('reject')); const promiseTwo = new Promise((resolve, reject) => resolve('resolve')); const promiseThree = new Promise((resolve, reject) => resolve('resolve2'));
¿Cómo ejecutar Promise.allSettled con varias promesas?
Una vez tienes las tres promesas, las pasas dentro de un arreglo al método y encadenas un then para capturar la respuesta. Como allSettled también devuelve una promesa, este patrón te resulta familiar.
js Promise.allSettled([promiseOne, promiseTwo, promiseThree]) .then(response => console.log(response));
Al ejecutar el archivo, la consola te devuelve un arreglo con un objeto por cada promesa.
¿Qué información devuelve Promise.allSettled en consola?
Cada objeto del arreglo contiene un campo status y, dependiendo del resultado, un reason o un value. Esa estructura es la que te permite tomar decisiones después.
- status: 'rejected' acompañado de
reasoncon el motivo del fallo. Aquí podrías inyectar errores personalizados según tu lógica de negocio. - status: 'fulfilled' acompañado de
value, que contiene el recurso o dato que devolvió la promesa cumplida.
¿Cuándo conviene usar Promise.allSettled en lugar de Promise.all? Cuando necesitas conocer el desenlace de todas las promesas aunque algunas fallen, por ejemplo al consultar varias APIs y querer registrar tanto las exitosas como las caídas.
Con esa información en mano, puedes continuar el flujo, mostrar mensajes específicos al usuario o reintentar las promesas rechazadas. Cada elemento del arreglo cumplirá un objetivo claro según el modelo de negocio de la aplicación o el recurso que estés construyendo.
¿Qué habilidades y conceptos refuerzas con este ejercicio?
Más allá de la sintaxis, hay nociones técnicas que vale la pena tener bien afinadas para sacarle provecho al método.
- Promesa (Promise): objeto que representa la finalización (o fallo) eventual de una operación asíncrona.
- Estados fulfilled y rejected: los dos posibles desenlaces que
allSettledreporta sin filtrar. - Arrow functions con return implícito: forma compacta de declarar la función ejecutora dentro de
new Promise. - Parámetros resolve y reject: ambos deben declararse aunque solo uses uno, según se aclara cerca del [3:10].
- Encadenamiento con then: forma estándar de consumir el resultado del método.
Dominar estos puntos te prepara para diseñar flujos asíncronos resilientes, donde un fallo aislado no bloquea la información que sí lograste obtener.
¿Ya probaste reemplazar Promise.all por Promise.allSettled en alguno de tus proyectos? Cuéntame en los comentarios cómo cambió tu manejo de errores.