JavaScript · Intermediário · Inglês · Técnico
microtask
Tarefa curta da fila de alta prioridade, alimentada por then de promises, await e queueMicrotask. Roda logo após o código atual, antes de timers e eventos de interface.
Onde usar
Explica por que o then roda antes de um setTimeout de zero. Em code review, microtasks que se reagendam sem fim travam a página, pois a fila precisa esvaziar antes de continuar.
Em código
setTimeout(() => console.log('timer'), 0);
Promise.resolve('micro').then(console.log);
console.log('sync');
// sync, micro, timerExemplos
The then callback is a microtask, so it runs before the timer.
O callback do then é uma microtask, então roda antes do timer.
A microtask that keeps rescheduling itself starves the page.
Uma microtask que se reagenda sem parar sufoca a página.
Cuidado
Criar um loop infinito de microtasks, que bloqueia timers e renderização.
Antônimos
macrotask