Como funciona o Event Loop por trás dos panos.
- #JavaScript
- #Node.js
Hoje sai um pouco do entendimento superficial de como o javascript funciona por baixo dos panos na web e respectivamente no Node, busquei um entendimento melhor sobre a Single Thread do JS e as diferenças entre eles e as demais linguagens de servidores que usam (Multi-Threads), tendo um entendimento melhorado sobre o Event Loop, deixo um breve resumo:
Event Loop - (Laço de Eventos): É um mecanismo que está presente em ambientes de execução JavaScript, como navegadores ou o ambiente Node.js. Ele é responsável por verificar repetidamente se há tarefas a serem executadas.
Pilha de Chamadas - (Call Stack): É onde as chamadas de função são empilhadas quando o código está sendo executado. O Event Loop verifica se a pilha de chamadas está vazia.
Callback Queue - (Fila de Callbacks): É onde as funções de retorno (callbacks) são enfileiradas para serem executadas após a conclusão de uma operação assíncrona. As operações assíncronas podem incluir, por exemplo, requisições de rede, leitura de arquivos ou temporizadores. Vale ressaltar que antes da Callback Queue, temos a WebAPIs onde empilha as chamadas assíncronas (Eventos, temporizadores, requisições).
O Event Loop desempenha o papel de um observador, constantemente verificando se a pilha de chamadas (call stack) está vazia e se há tarefas pendentes na fila de callbacks. Quando a pilha de chamadas está vazia e a fila de callbacks contém tarefas, o Event Loop transfere essas tarefas da fila de callbacks para a pilha de chamadas, permitindo sua execução. Esse processo é essencial para garantir a sincronização eficiente e a execução assíncrona de operações no ambiente de execução JavaScript.
Testando o Event Loop na prática: https://www.jsv9000.app/