Sobes.tech
Middle+

Qual é a sequência de execução de microtarefas e macro-tarefas no Event Loop?

sobes.tech IA

Resposta da IA

A ordem de execução no Event Loop do JavaScript é a seguinte:

  1. Macro-tarefas (fila de tarefas) — por exemplo, manipuladores de eventos, setTimeout, setInterval, pedidos de rede.
  2. Micro-tarefas (fila de microtarefas) — promessas (.then/.catch/.finally), MutationObserver.

Sequência:

  • Uma macro-tarefa é executada da fila.
  • Após a execução da macro-tarefa, todas as microtarefas da fila de microtarefas são executadas em sequência.
  • Após limpar as microtarefas, o Event Loop passa para a próxima macro-tarefa.

Em outras palavras, microtarefas são executadas imediatamente após a macro-tarefa atual e antes da próxima, permitindo processar promessas e outras microtarefas de alta prioridade.

Exemplo:

console.log('script start');

setTimeout(() => console.log('setTimeout'), 0);

Promise.resolve().then(() => console.log('promise1')).then(() => console.log('promise2'));

console.log('script end');

A saída será:

script start
script end
promise1
promise2
setTimeout