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

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);
});

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);
});

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);
});

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; }));
});

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.

Quiz: wybór kombinatora
Szybkie sprawdzenie: Pierwszy spełniony rezultat.

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.

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
- Pętla zdarzeń i podstawy zadań oraz mikrozadań
- Promises — stany, łańcuchy i obsługa błędów
- Promise.all / any / race / allSettled — wybór właściwego narzędzia