Sobes.tech
Middle

Em que ordem os números serão exibidos no código com Promise, setTimeout e código síncrono (Event Loop)?

sobes.tech IA

Resposta da IA

Em JavaScript, a ordem de execução do código com Promise, setTimeout e código síncrono é determinada pelo Event Loop e pelas filas de microtarefas (microtasks) e macro tarefas (macrotasks).

Vamos considerar um exemplo:

console.log('1');

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

Promise.resolve().then(() => {
  console.log('3');
});

console.log('4');

Explicação:

  • Primeiro, todo o código síncrono é executado, portanto, são exibidos 1 e 4.
  • Depois, as microtarefas (Promise) são executadas, exibindo 3.
  • Após isso, as macro tarefas (setTimeout) são executadas, exibindo 2.

A ordem final de saída é: 1, 4, 3, 2.

Assim, o código síncrono é executado primeiro, seguido das microtarefas (Promise), e depois das macro tarefas (setTimeout). Este é um ponto chave para entender o Event Loop em JavaScript.