JavaScript · Intermediário · Inglês · Técnico
event loop
Mecanismo que permite ao JavaScript, de thread única, lidar com tarefas assíncronas: quando a pilha esvazia, ele pega a próxima microtask ou tarefa da fila e a executa.
Onde usar
Explica a ordem de execução de timers, promises e eventos. Em code review, ajuda a diagnosticar interface travada, já que trabalho pesado síncrono bloqueia o loop.
Em código
console.log(1);
setTimeout(() => console.log(4), 0);
Promise.resolve(3).then(console.log);
console.log(2);
// 1, 2, 3, 4Exemplos
A heavy loop blocks the event loop and freezes the page.
Um laço pesado bloqueia o event loop e congela a página.
The event loop only picks the next task when the stack is empty.
O event loop só pega a próxima tarefa quando a pilha está vazia.
Cuidado
Achar que setTimeout executa em paralelo: o JavaScript segue em uma thread, e quem espera o tempo é o ambiente.
Sinônimos
laço de eventos