Article image
João Santos
João Santos02/04/2025 21:31
Compartilhe

Como o Event Loop do JavaScript Funciona? 🤯

  • #JavaScript

Se você programa em JavaScript, já deve ter ouvido falar do Event Loop. Mas você sabe realmente como ele funciona? Vamos descomplicar isso agora! 🚀

O que é o Event Loop?

O Event Loop é o que faz o JavaScript rodar código assíncrono sem travar tudo. Ele gerencia o que é executado e quando, garantindo que seu código não vire uma bagunça.

Como Funciona na Prática?

O JavaScript tem uma Call Stack (Pilha de Execução), onde as funções entram e saem na ordem (LIFO - Last In, First Out).

Exemplo:

function funcA() {
  console.log("A");
  funcB();
  console.log("A finalizado");
}

function funcB() {
  console.log("B");
}

funcA();

Saída:

A
B
A finalizado

Tudo linear, sem surpresas. Mas e se jogarmos algo assíncrono?

console.log("Início");

setTimeout(() => {
  console.log("Timeout");
}, 0);

console.log("Fim");

Saída:

Início
Fim
Timeout

O setTimeout não bloqueia a execução. Ele vai para uma fila (Task Queue) e é executado depois que a Call Stack estiver vazia.

Promises e Prioridade 🚀

Promises vão para outra fila (Microtask Queue), que tem prioridade sobre setTimeout. Veja:

console.log("Início");

setTimeout(() => console.log("Timeout"), 0);

Promise.resolve().then(() => console.log("Promise"));

console.log("Fim");

Saída:

Início
Fim
Promise
Timeout

As Promises são executadas antes do setTimeout! 🔥

Conclusão

O Event Loop é o maestro que impede o JavaScript de virar um caos. Entender como ele funciona ajuda a evitar bugs e melhorar o desempenho do código.

Se curtiu, compartilha com a galera! E se ficou com dúvida, comenta aí! 🚀

Compartilhe
Comentários (2)
Marcos Jesus
Marcos Jesus - 03/04/2025 11:03

Conteúdo de qualidade.

DIO Community
DIO Community - 03/04/2025 16:44

João, você fez um excelente trabalho em descomplicar o funcionamento do Event Loop! A explicação está bem clara, especialmente para quem está começando a entender como o JavaScript lida com o código assíncrono. O exemplo que você deu com o setTimeout e as Promises realmente ajuda a visualizar a ordem de execução e a diferença entre a Task Queue e a Microtask Queue.

É muito importante que desenvolvedores compreendam o Event Loop, porque isso impacta diretamente o desempenho e a forma como o código assíncrono é tratado. Além disso, como você mencionou, entender essa mecânica pode evitar bugs difíceis de encontrar, especialmente em aplicações complexas com muitas operações assíncronas.

Você acredita que há outros conceitos fundamentais no JavaScript que os iniciantes podem não perceber, mas que fazem toda a diferença na hora de escrever um código mais eficiente e sem erros?