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
1e4. - 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.