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.any y métodos privados en ES12
Resumen
JavaScript sigue evolucionando, y ECMAScript 12 trajo dos joyas que vale la pena dominar: Promise.any para manejar múltiples promesas con lógica diferente a Promise.all, y los métodos privados con getter y setter privados en clases. Si trabajas con aplicaciones que llaman varias APIs o necesitas encapsular lógica dentro de tus clases, estas características te van a servir.
¿Qué hace Promise.any en JavaScript?
Promise.any recibe un arreglo de promesas y te devuelve la primera que se resuelva de forma satisfactoria, ignorando las que terminen en reject. Es una lógica distinta a Promise.all, que espera a que todas se cumplan.
La sintaxis es directa: le pasas un array con tus promesas y, dentro del then, capturas la respuesta con una arrow function.
js Promise.any([promiseOne, promiseTwo, promiseThree]) .then(response => console.log(response));
Si la primera promesa devuelve reject, JavaScript la ignora y sigue buscando. En el ejemplo del ejercicio, la primera promesa devolvía reject, la segunda devolvía resolved, y esa fue la que se imprimió en consola.
¿Cuándo usar Promise.any en lugar de Promise.all? Úsalo cuando necesites el primer resultado exitoso entre varias promesas, sin importar si otras fallan. Por ejemplo, llamar a varias APIs equivalentes y quedarte con la que responda primero.
¿Por qué importa para aplicaciones robustas?
Cuando construyes apps que dependen de múltiples fuentes de datos, a veces solo necesitas la respuesta más rápida. Imagina que llamas a tres servidores espejo: con Promise.any te quedas con el que conteste primero y descartas la espera de los demás.
Esta característica te permite jugar con diferentes elementos y estados dentro de aplicaciones que manejan múltiples llamadas asíncronas en paralelo.
¿Cómo se declaran métodos privados en clases de JavaScript?
Para volver privado un método, una propiedad o un getter/setter dentro de una clase, antepones el símbolo de almohadilla # al nombre. Eso le dice a JavaScript que ese miembro solo puede accederse desde dentro de la misma clase.
Recuerda que las clases llegaron con ECMAScript 6, junto con el constructor, los métodos, los getters y los setters. Lo que añade ECMAScript 12 es el modificador de privacidad real a nivel de lenguaje.
js class User { #speak() { // método privado }
get #secret() { return this._secret; }
set #secret(value) { this._secret = value; } }
Con esa almohadilla, #speak, el getter y el setter quedan blindados. Si intentas llamarlos desde fuera de la clase, JavaScript te lanza un error.
¿Qué significa el símbolo # en una clase de JavaScript? Es el indicador de privacidad. Convierte ese método, propiedad, getter o setter en un miembro accesible únicamente desde dentro de la propia clase.
¿Para qué sirve encapsular con getters y setters privados?
Encapsular protege la lógica interna de tu clase. Evita que otro desarrollador, o tú mismo en seis meses, modifique partes que no deberían tocarse desde fuera. Es una práctica clave cuando construyes librerías o módulos que otros van a consumir.
¿Vale la pena aprender clases si trabajas con programación funcional?
Muchos desarrolladores hoy prefieren las arrow functions y un estilo más cercano a la programación funcional, dejando las clases en segundo plano. Pero conocer estas características no es opcional si quieres crecer como profesional.
Algunas razones concretas:
- Librerías como React, usadas por Uber y Netflix, exponen APIs que internamente usan promesas, clases y patrones avanzados.
- Tarde o temprano vas a leer código de otros que sí usa clases con miembros privados.
- Un algoritmo o lógica muy específica puede resolverse mejor con una clase encapsulada que con funciones sueltas.
¿Debo usar clases o arrow functions en JavaScript moderno? Depende del problema. Las arrow functions y la programación funcional dominan el día a día, pero las clases con privacidad son ideales cuando necesitas encapsular estado y comportamiento de forma segura.
La invitación es clara: explora el repositorio de React, lee cómo está construido por dentro, y vas a encontrar promesas, clases y patrones que aparentan ser abstractos pero que resuelven problemas reales. Cuéntame en los comentarios qué descubriste mientras navegabas ese código.