Avanzado y Asyncjueves, 29 de enero de 2026

Promesas y JS Async

Manejo de tareas que consumen tiempo.

Publicidad

Apoya a JS Fruggal visitando a nuestros patrocinadores.

Una Promesa es un "Pagaré" (IOU) para un valor futuro. Previene el temido "Callback Hell" al aplanar el código anidado.

Consumiendo una Promesa

Simulando una solicitud de red de lanzamiento de moneda.

const lanzarMoneda = new Promise((resolve, reject) => {
  setTimeout(() => {
    if (Math.random() > 0.5) resolve("¡Cara! Ganaste.");
    else reject("¡Cruz! Perdiste.");
  }, 1000);
});

console.log("Lanzando moneda...");

lanzarMoneda
  .then(resultado => console.log("Éxito:", resultado))
  .catch(err => console.error("Fallo:", err))
  .finally(() => console.log("Juego Terminado."));

Avanzado: Ejecución Paralela

La Analogía del Chef

Si necesitas Tostada Y Café:
Secuencial: Hacer tostada (esperar 2m). Luego hacer café (esperar 2m). Total: 4m.
Paralelo (Promise.all): Empezar tostada Y empezar café. Esperar ambos. Total: 2m.

const obtenerTostada = new Promise(r => setTimeout(() => r("Tostada"), 1000));
const obtenerCafe = new Promise(r => setTimeout(() => r("Café"), 1000));

console.log("Comenzando desayuno...");

Promise.all([obtenerTostada, obtenerCafe])
  .then(([comida, bebida]) => {
    console.log(`El desayuno está servido: ${comida} y ${bebida}`);
  });
Publicidad

Apoya a JS Fruggal visitando a nuestros patrocinadores.