JavaScript · Essencial · Inglês · Técnico
setTimeout
Função que agenda um callback para rodar depois de um atraso mínimo em milissegundos. Não bloqueia: o código seguinte executa primeiro, e o callback entra na fila do event loop.
Onde usar
Usada para adiar trabalho, simular espera e fazer debounce. Em code review, lembre que o tempo é só o mínimo e que setTimeout(fn, 0) ainda roda depois do código síncrono e das microtasks.
Em código
console.log('a');
setTimeout(() => console.log('c'), 0);
queueMicrotask(() => console.log('b'));
console.log('d');
// a, d, b, cExemplos
A setTimeout of zero still runs after the synchronous code.
Um setTimeout de zero ainda roda depois do código síncrono.
The delay in setTimeout is only a minimum.
O atraso do setTimeout é só um mínimo.
Cuidado
Acreditar que o atraso é exato: se a pilha estiver ocupada, o callback espera.