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