October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

O que é o Event Loop em JavaScript? Um guia para começar a estudar

Aprenda o básico do event loop em JavaScript: execução até a conclusão, callbacks, microtarefas no navegador e fases próprias do Node.js.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

O event loop coordena quando callbacks de trabalho assíncrono podem ser executados. JavaScript executa cada trecho síncrono até o fim; depois, o ambiente hospedeiro — como o navegador ou o Node.js — decide qual trabalho enfileirado vem a seguir. Para começar a estudar, entenda primeiro a pilha de chamadas e a execução até a conclusão; depois, aprenda como tarefas e microtarefas funcionam no navegador e como as fases do Node.js diferem.

Como JavaScript executa o código

JavaScript executa trabalho em uma pilha de chamadas. Quando uma função é chamada, ela entra na pilha; quando termina, sai. O código de um job é processado até concluir antes que outro job comece. Esse princípio, chamado execução até a conclusão (run-to-completion), torna mais fácil acompanhar alterações de estado: outro job JavaScript não interrompe o trecho que está rodando.

As an Amazon Associate I earn from qualifying purchases.

Isso não significa que uma operação assíncrona terminou só porque foi iniciada. O ambiente hospedeiro pode cuidar de um timer, uma operação de I/O ou um evento enquanto a pilha JavaScript está ocupada. Quando houver trabalho a executar, o ambiente agenda um callback; o JavaScript só o processa quando puder. A visão geral do modelo de execução do JavaScript da MDN apresenta os conceitos de agente, pilha e jobs.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

O que acontece quando você agenda um timer

Um timer não interrompe o código síncrono em andamento. O ambiente agenda o callback para execução posterior, e o event loop permite que ele seja processado quando as condições do host permitirem. Portanto, setTimeout(fn, 0) não quer dizer “execute agora”: zero não elimina o trecho síncrono atual nem garante execução imediata.

Uma forma útil de raciocinar é separar três momentos: o código solicita uma operação; o host aguarda ou acompanha o evento pertinente; e o callback passa a ser trabalho que o ambiente poderá executar depois. Os detalhes de agendamento dependem do host, então não se deve presumir uma única fila universal que funcione da mesma forma em todo JavaScript.

Tarefas, microtarefas e Promises no navegador

No modelo de navegador documentado pela MDN, tarefas podem vir de fontes como eventos e temporizadores, enquanto callbacks de Promise são tratados como microtarefas. Quando a pilha fica vazia, o navegador drena as microtarefas antes de avançar para a próxima tarefa. Uma microtarefa pode agendar outra; nesse caso, a drenagem continua e pode atrasar o processamento de tarefas subsequentes.

Às vezes, materiais informais chamam tarefas de “macrotarefas”. A especificação HTML usa os termos “task” e “microtask”; convém manter essa distinção em mente, porque as regras detalhadas variam conforme o ambiente. A guia de microtarefas da MDN explica a relação entre microtarefas, tarefas e o comportamento no navegador.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Navegador e Node.js não têm o mesmo modelo de agendamento

O princípio geral — o código síncrono precisa liberar a execução antes que outro callback JavaScript rode — ajuda nos dois ambientes. Mas as fontes de trabalho e as regras específicas são diferentes:

Aspecto Navegador Node.js
Fontes de trabalho APIs da plataforma web, eventos e temporizadores; o navegador também coordena trabalho relacionado à renderização. I/O e APIs fornecidas pelo Node.js, além de timers e outros callbacks do ambiente.
Modelo descrito O modelo HTML distingue tarefas e microtarefas; Promises usam microtarefas. O event loop é organizado em fases, incluindo poll e check, além de timers.
Consideração de versão As regras citadas aqui são as do modelo de navegador descrito pela MDN. No Node.js 20, que usa libuv 1.45.0, os timers passaram a ser executados depois da fase poll em cada iteração do loop; a ordem pode depender da versão e do contexto.

A documentação oficial do Node.js Learn resume o papel do mecanismo assim: “The event loop is what allows Node.js to perform non-blocking I/O operations — despite the fact that a single JavaScript thread is used by default — by offloading operations to the system kernel whenever possible.” Em outras palavras, o Node.js pode delegar certas operações de I/O ao kernel e continuar executando JavaScript quando houver trabalho disponível; isso não torna automaticamente paralelo o código JavaScript que consome CPU. Consulte o guia oficial do event loop, timers e nextTick do Node.js para as fases e as ressalvas de versão.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Por que trabalho síncrono longo causa atrasos

Se um trecho síncrono demora muito, a pilha permanece ocupada e outros callbacks JavaScript aguardam. No Node.js, isso pode atrasar callbacks e aumentar a espera de clientes enquanto o loop passa tempo excessivo nesse trecho. O event loop organiza a execução; não transforma código CPU-bound em trabalho paralelo. A documentação do Node.js aborda esse efeito em Don’t block the event loop.

Um roteiro para começar a estudar

  1. Comece pelo modelo de execução. Leia sobre agentes, pilha de chamadas, jobs e run-to-completion na MDN.
  2. Estude o navegador separadamente. Acompanhe como a MDN explica microtarefas, Promises, eventos e temporizadores.
  3. Se seu foco for Node.js, aprenda as fases do loop. Leia o guia do Node.js e confira exemplos na versão que você realmente usa, especialmente ao comparar timers com outras fases.
  4. Por fim, investigue o bloqueio do loop. Use a explicação do Node.js sobre trabalho síncrono que impede o loop de avançar para relacionar execução longa a atrasos de callbacks e latência.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.