Centrum wiedzy o technologiach i pracy w IT
javascript event loop

Poznaj zastosowania Event Loop w JavaScript. Przykłady kodu

Ostatnia aktualizacja 15 lutego, 2024

Jedną z fundamentalnych koncepcji, która pozwala językowi JavaScript na efektywne zarządzanie operacjami asynchronicznymi, jest pętla zdarzeń, znana również jako Event Loop. To właśnie dzięki Event Loop, JS może obsługiwać wiele zadań jednocześnie. To niezbędna funkcja we współczesnym środowisku webowym, które charakteryzuje się ciągłą zmiennością i wysokim poziomem skomplikowania. W tym tekście przyjrzymy się bliżej, czym jest Event Loop, jak działa oraz jakie ma praktyczne zastosowania w codziennym programowaniu.

Nie udało się zapisać Twojej subskrypcji. Spróbuj ponownie.
Udało się! Widzimy się niebawem – newsletter wysyłamy w każdy wtorek

Otrzymuj za darmo unikalne poradniki, dane i wiedzę o pracy w IT – dostarczane co tydzień

Klikając “Zapisz mnie” wyrażasz zgodę na otrzymywanie e-maili od redakcji, a także ofert partnerów oraz akceptujesz naszą Politykę prywatności.

Czym jest Event Loop w JavaScript?

Event Loop jest mechanizmem, który umożliwia JavaScriptowi wykonanie kodu, zbieranie i przetwarzanie zdarzeń oraz wykonanie zaplanowanych wywołań zwrotnych (callbacków). Jest to serce modelu asynchronicznego w JavaScript, które umożliwia wykonywanie skomplikowanych działań, do których można zaliczyć np. pobieranie danych z serwera bez blokowania wątku głównego.

Jak działa Event Loop?

Podstawowym zadaniem Event Loop jest monitorowanie stosu wywołań (call stack) oraz kolejki zdarzeń (callback queue). Gdy stos wywołań jest pusty, Event Loop przenosi zadania z kolejki zdarzeń do stosu wywołań, aby zostały wykonane. Dzięki temu mechanizmowi operacje asynchroniczne, takie jak obsługa zdarzeń czy wywołania AJAX, mogą być realizowane równolegle do innych operacji.

Stos wywołań (call stack)

Call stack to miejsce przechowywania wszystkich funkcji do wykonania. JavaScript wykonuje funkcje od góry do dołu, usuwając je ze stosu po wykonaniu.

Sprawdź także: Praca mechanika

Kolejka zdarzeń (callback queue)

Kolejka zdarzeń to miejsce, gdzie JavaScript przechowuje wywołania zwrotne (callbacki), które mają zostać wykonane po zakończeniu aktualnych operacji.

Pętla zdarzeń w praktyce

console.log('Pierwszy');

setTimeout(function() {
    console.log('Drugi');
}, 0);

console.log('Trzeci');

W powyższym przykładzie, mimo że setTimeout ma opóźnienie ustawione na 0ms, to wiadomość “Drugi” pojawi się na ekranie jako ostatnia. Dzieje się tak, ponieważ wywołanie zwrotne setTimeout jest przekazywane do kolejki zdarzeń i musi poczekać, aż stos wywołań będzie pusty, zanim zostanie wykonane.

Praktyczne zastosowanie Event Loop

Event Loop ma kluczowe znaczenie w tworzeniu interaktywnych i responsywnych aplikacji webowych. Jak już wspomnieliśmy wyżej, umożliwia on obsługę wielu zadań bez blokowania wątku głównego, co jest szczególnie ważne przy operacjach wejścia/wyjścia. Chodzi tu w szczególności o zapytania do bazy danych, żądania HTTP czy obsługę interfejsu użytkownika.

Przykład z wykorzystaniem Fetch API

fetch('https://api.example.com/data')
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Błąd:', error));

W tym przykładzie używamy Fetch API do asynchronicznego pobrania danych z serwera. Dzięki Event Loop, cały proces odbywa się bez zakłócania działania innych skryptów czy interakcji użytkownika z aplikacją.

Dziękujemy, że przeczytałaś/eś nasz artykuł. Obserwuj EnterTheCode.pl w Wiadomościach Google, aby być na bieżąco.

Czytaj także:

JavaScript – komunikacja z REST API w praktyce

Zarządzanie treścią i stylem strony z użyciem JavaScript i DOM

Total
0
Shares
_podobne artykuły