Junior — Middle
Czy możesz wyjaśnić zasadę działania pętli obsługi zdarzeń w systemach asynchronicznych?
sobes.tech AI
Odpowiedź od AI
Pętla zdarzeń (event loop) w systemach asynchronicznych, takich jak Node.js, odpowiada za zarządzanie wykonywaniem operacji asynchronicznych bez blokowania głównego wątku.
Zasada działania:
- Wszystkie operacje wymagające czasu (np. odczyt pliku, żądania sieciowe) są umieszczane w kolejce zdarzeń.
- Pętla zdarzeń stale sprawdza tę kolejkę i, gdy operacja się kończy, wywołuje odpowiedni callback lub obsługę.
- Główny wątek nie jest blokowany, kontynuuje wykonywanie kolejnego kodu, aż pojawią się zakończone zdarzenia.
Pozwala to efektywnie wykorzystywać zasoby i obsługiwać wiele operacji równolegle, mimo jednordzeniowej natury Node.js.
Przykład:
console.log('Początek');
setTimeout(() => {
console.log('Asynchroniczne zdarzenie');
}, 1000);
console.log('Koniec');
Wynik będzie:
Początek
Koniec
Asynchroniczne zdarzenie
Ponieważ setTimeout umieszcza funkcję w kolejce zdarzeń, a pętla zdarzeń wywołuje ją później.