El Misterio del Tiempo Congelado
Dificultad: Difícil JavaScript advanced coding
const reloj = () => {
let tiempo = 0;
return async () => {
await new Promise(r => setTimeout(r, 100));
return tiempo++;
};
};
const tick = reloj();
Promise.all([tick(), tick(), tick()]).then(t => console.log(t)); 📥 Inputs:
N/A
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
Aunque Promise.all ejecuta las promesas en paralelo, todas capturan el mismo closure con tiempo=0 ANTES de que cualquier incremento ocurra. El ++ solo se ejecuta después del await, pero Promise.all ya capturó las tres llamadas simultáneamente. Es una trampa común del timing entre closures y async/await.
¿Qué imprime en consola? ⏰