0Pricing
JavaScript Academy · Lekcja

Promise.all / any / race / allSettled — wybór właściwego narzędzia

Ćwiczenie kombinatorów Promise: all, any, race i allSettled. Poznanie zachowania przy sukcesie i błędzie oraz sytuacji, w których warto użyć każdego z nich

Promise.all / any / race / allSettled — wybór właściwego narzędzia to bezpłatna lekcja JavaScript Academy na CoddyKit. To lekcja 3 z 3. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej JavaScript Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Przegląd kombinatorów

Cel: Poznać cztery funkcje pomocnicze i ich działanie.

  • all: czeka na wszystkie; szybko kończy się błędem
  • any: pierwszy sukces
  • race: pierwsze rozstrzygnięcie (sukces lub błąd)
  • allSettled: wyniki wszystkich
Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 1

Podstawy Promise.all

Promise.all rozwiązuje się tablicą wyników; pojedyncze odrzucenie powoduje odrzucenie całej operacji.

// Small helpers for examples
function delay(ms, value, shouldFail = false) {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      if (shouldFail) reject(new Error(String(value)));
      else resolve(value);
    }, ms);
  });
}

// Promise.all waits for all; rejects fast on first error
Promise.all([
  delay(10, "A"),
  delay(5, "B")
]).then(function (vals) {
  console.log("all:", vals);
});
Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 2

Podstawy Promise.any

Promise.any rozwiązuje się pierwszym sukcesem; odrzuca się tylko wtedy, gdy wszystkie dane wejściowe zostaną odrzucone.

// Promise.any gives the first fulfilled value
Promise.any([
  delay(8, "ok-1"),
  delay(3, "ok-2"),
  delay(6, "ok-3")
]).then(function (v) {
  console.log("any:", v);
}).catch(function (e) {
  console.log("any failed:", e.message);
});
Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 3

Podstawy Promise.race

Promise.race wybiera element, który jako pierwszy zmieni stan: może to być resolve albo reject.

// Promise.race settles with the first to finish (success or error)
Promise.race([
  delay(5, "win"),
  delay(7, "boom", true)
]).then(function (v) {
  console.log("race resolved:", v);
}).catch(function (e) {
  console.log("race rejected:", e.message);
});
Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 4

Podstawy Promise.allSettled

Promise.allSettled zawsze rozwiązuje się tablicą obiektów statusu dla każdego elementu wejściowego.

// Promise.allSettled waits for all and reports each outcome
Promise.allSettled([
  delay(4, "A"),
  delay(6, "X", true)
]).then(function (results) {
  console.log("allSettled:", results.map(function (r) { return r.status; }));
});
Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 5

Którego użyć?

Wybór:

  • all: gdy potrzebne są wszystkie wyniki; dowolny błąd kończy działanie natychmiast.
  • any: gdy akceptowany jest pierwszy sukces (źródła zapasowe).
  • race: gdy należy wybrać pierwszy zakończony element (wzorce z limitem czasu).
  • allSettled: gdy należy zebrać każdy rezultat w celu jego sprawdzenia.
Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 6

Quiz: wybór kombinatora

Szybkie sprawdzenie: Pierwszy spełniony rezultat.

Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 7

Podsumowanie

Podsumowanie: Należy używać all, gdy „potrzebne są wszystkie”, any dla „pierwszego sukcesu”, race dla „pierwszego rozstrzygnięcia”, a allSettled do sprawdzania każdego rezultatu bez przerywania działania po pierwszym błędzie.

Promise.all / any / race / allSettled — wybór właściwego narzędzia — ilustracja 8

Często zadawane pytania

Czy lekcja „Promise.all / any / race / allSettled — wybór właściwego narzędzia” jest bezpłatna?

Tak — pełny tekst „Promise.all / any / race / allSettled — wybór właściwego narzędzia” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu JavaScript Academy, przejdź na CoddyKit PRO. Kurs JavaScript Academy zawiera 3 lekcji w sumie.

Co nauczysz się w „Promise.all / any / race / allSettled — wybór właściwego narzędzia”?

Ćwiczenie kombinatorów Promise: all, any, race i allSettled. Poznanie zachowania przy sukcesie i błędzie oraz sytuacji, w których warto użyć każdego z nich Ćwiczysz JavaScript Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć JavaScript Academy?

Nie wymagamy żadnego doświadczenia. JavaScript Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 3.

Ile czasu zajmuje lekcja „Promise.all / any / race / allSettled — wybór właściwego narzędzia”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji JavaScript Academy?

Tak. Każda lekcja JavaScript Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Pętla zdarzeń i podstawy zadań oraz mikrozadań
  2. Promises — stany, łańcuchy i obsługa błędów
  3. Promise.all / any / race / allSettled — wybór właściwego narzędzia
← Powrót do JavaScript Academy