Kod asynchroniczny w JavaScript

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Kod asynchroniczny to kod, który nie blokuje dalszego wykonywania programu podczas oczekiwania na wynik operacji. W JavaScript jest to szczególnie ważne, ponieważ język ten często działa w środowisku przeglądarki, gdzie aplikacja musi jednocześnie reagować na użytkownika i wykonywać operacje w tle.

Przykłady operacji asynchronicznych

Do typowych operacji asynchronicznych należą:

  • pobieranie danych z serwera za pomocą fetch,
  • obsługa timerów, np. setTimeout,
  • odczyt plików,
  • komunikacja z bazą danych,
  • obsługa zdarzeń użytkownika.

Kod synchroniczny a asynchroniczny

Kod synchroniczny wykonuje się linia po linii. Jeśli jedna operacja trwa długo, kolejne instrukcje muszą czekać.

Kod asynchroniczny pozwala rozpocząć operację i kontynuować wykonywanie programu, a wynik obsłużyć dopiero wtedy, gdy będzie gotowy.

Przykład

console.log("Start");

setTimeout(() => {
  console.log("Wykonano po 2 sekundach");
}, 2000);

console.log("Koniec");

Wynik będzie następujący:

Start
Koniec
Wykonano po 2 sekundach

Pokazuje to, że setTimeout nie zatrzymał dalszego wykonywania programu.

Mechanizmy obsługi asynchroniczności

W JavaScript do pracy z kodem asynchronicznym używa się głównie:

  • funkcji zwrotnych, czyli callbacków,
  • obiektów Promise,
  • składni async/await.

Na egzaminie warto kojarzyć, że Promises oraz async/await służą do zarządzania operacjami asynchronicznymi, np. pobieraniem danych z serwera.