Microtareas y macrotareas en JavaScript
Las promesas se cuelan: cada microtarea corre antes del siguiente temporizador.
console.log("1 synchronous");
setTimeout(() => console.log("5 timeout"), 0);
Promise.resolve().then(() => console.log("3 microtask"));
queueMicrotask(() => console.log("4 queueMicrotask"));
console.log("2 synchronous end");
// imprime 1, 2, 3, 4, 5 -- el temporizador va al final aun con retraso cero
Cómo funciona
- El código síncrono termina primero, siempre.
- Luego se vacía la cola de microtareas: promesas y queueMicrotask.
- Solo entonces le toca el turno al callback de un temporizador.
Palabras clave y builtins usados aquí
Promise
El intento, en números
- Líneas
- 10
- Caracteres a escribir
- 304
- Tokens
- 62
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 35 segundos.
Paso 1 de 3 en Planificación; paso 12 de 19 en Promesas y async.