Sobes.tech
Junior — Middle

Czy możesz wyjaśnić zasadę działania pętli zdarzeń w Node.js i jej rolę w asynchronicznym przetwarzaniu zadań?

sobes.tech AI

Odpowiedź od AI

Pętla zdarzeń (Event Loop) w Node.js to mechanizm, który pozwala na wykonywanie kodu asynchronicznego bez blokowania głównego wątku. Node.js działa na jednym wątku, ale dzięki Event Loop może obsługiwać wiele operacji wejścia/wyjścia równocześnie.

Zasada działania:

  • Gdy uruchamiana jest operacja asynchroniczna (np. odczyt pliku lub zapytanie do bazy danych), jest ona wysyłana do odpowiedniego API systemowego lub kolejki.
  • Event Loop monitoruje te operacje i, gdy się kończą, umieszcza callbacki w kolejce zadań (kolejka callbacków).
  • Główny wątek kolejno obsługuje te callbacki, wywołując je jeden po drugim.

W ten sposób Event Loop zapewnia nieblokujące przetwarzanie zadań, umożliwiając Node.js efektywną pracę z dużą liczbą operacji równoczesnych.

Przykład:

console.log('Start');
setTimeout(() => {
  console.log('Timeout callback');
}, 0);
console.log('End');
// Wynik będzie:
// Start
// End
// Timeout callback