Sobes.tech
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:

  1. Wszystkie operacje wymagające czasu (np. odczyt pliku, żądania sieciowe) są umieszczane w kolejce zdarzeń.
  2. Pętla zdarzeń stale sprawdza tę kolejkę i, gdy operacja się kończy, wywołuje odpowiedni callback lub obsługę.
  3. 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.