Przejdź do głównej zawartości

23. Promise w JavaScript — then/catch/finally i chaining

Promise — obietnica przyszłej wartości

Promise to obiekt reprezentujący wartość która będzie dostępna w przyszłości (lub operację która się nie powiedzie). Trzy stany: pending (czeka), fulfilled (sukces), rejected (błąd). Promise zastąpiły callback hell i są podstawą async/await.

Promise są wszędzie w nowoczesnym JavaScript: fetch(), timery, File API. Zrozumienie Promisów to prerequisite dla async/await i wszystkiego asynchronicznego.

  1. Opisać trzy stany Promise: pending, fulfilled, rejected
  2. Wyjaśnić chaining: then/catch/finally
  3. Omówić Promise.all, Promise.race, Promise.allSettled
  4. Pokazać ewolucję: callback → Promise → async/await
  1. Czym jest Promise — asynchroniczne operacje, trzy stany
  2. then/catch/finally — obsługa sukcesu, błędu, sprzątanie
  3. Promise chaining — sekwencja operacji asynchronicznych
  4. Promise.all — równoległe operacje, czeka na wszystkie
  5. Tworzenie Promisenew Promise((resolve, reject) => ...)

Przykład 1

Promise chain: fetch → parse → transform → catch błędów.

Przykład 2

Promise.all — równoległe pobranie użytkownika i jego postów.

Przykład 3

Tworzenie własnego Promise — delay(ms) jako reużywalny sleep.

  1. Wstęp — problem callback hell
  2. Rozdział 1: Promise — stany, tworzenie, then/catch/finally
  3. Rozdział 2: Chaining — sekwencja operacji
  4. Rozdział 3: Promise.all i inne — równoległość
  5. Podsumowanie
  6. Bibliografia

Promise to fundament asynchronicznego JS!

Użyj schematu cyklu życia Promise: pendant → fulfilled/rejected. To najlepszy sposób na wytłumaczenie że Promise nie blokuje kodu.