Promesas y async/await

Ya usaste fetch en el módulo anterior. Ahora entiendes de verdad qué pasaba por dentro.

JavaScript hace una sola cosa a la vez. Si fetch() "congelara" el programa mientras espera la respuesta de internet, toda la página se trabaría hasta que llegue. En vez de eso, JavaScript sigue trabajando y te avisa cuando el dato llega, con una promesa.

Una promesa siempre está en uno de tres estados: pendiente (todavía esperando), cumplida (llegó bien, dispara .then()), o rechazada (algo salió mal, dispara .catch()).

.then() encadenado varias veces se vuelve difícil de seguir. async y await son azúcar sintáctico: la misma promesa por dentro, pero escrita como si fuera código normal, de arriba a abajo.

Ese es exactamente el patrón que usaste con fetch en el tutorial anterior: await fetch(...) espera la respuesta antes de seguir a la siguiente línea, sin congelar el resto de la página.

Con async/await, los errores se atrapan con try/catch —lo mismo que ya viste en el tutorial de manejo de errores—, en vez de .catch().

Qué es una promesa y sus tres estados, cómo escribirlas con .then()/.catch(), y por qué async/await es la forma preferida hoy en día para escribir lo mismo de forma más clara.

Ahora, tres métodos de array que vas a usar constantemente: map, filter y reduce, a fondo.