Promise.all / any / race / allSettled — valitse oikea työkalu
Harjoittele Promisen yhdistelymetodeja: all, any, race ja allSettled. Opi onnistumis- ja epäonnistumiskäyttäytyminen sekä se, milloin kutakin käytetään
Promise.all / any / race / allSettled — valitse oikea työkalu on ilmainen JavaScript Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/3. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu JavaScript Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Kombinaattorien yleiskatsaus
Tavoite: Oppikaa neljä apumenetelmää ja niiden toiminta.
- all: odottaa kaikkia ja epäonnistuu heti
- any: ensimmäinen onnistuminen
- race: ensimmäisenä lopulliseen tilaan siirtyvä (onnistuminen/virhe)
- allSettled: kaikkien tulokset

Promise.all perusteet
Promise.all ratkaistaan tulostaulukolla. Yksi ainoa hylkäys hylkää koko Promisen.
// 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.any perusteet
Promise.any ratkaistaan ensimmäisellä onnistumisella. Se hylätään vain, jos kaikki syötteet hylätään.
// 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.race perusteet
Promise.race valitsee ensimmäisenä lopulliseen tilaan siirtyvän vaihtoehdon: se voi olla ratkaisu tai hylkäys.
// 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.allSettled perusteet
Promise.allSettled ratkaistaan aina taulukolla, joka sisältää jokaisen syötteen tilaolion.
// 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; }));
});

Mitä niistä kannattaa käyttää?
Valinta:
- all: tarvitsette kaikki tulokset ja haluatte epäonnistua heti minkä tahansa virheen kohdalla.
- any: hyväksytte ensimmäisen onnistumisen (varalähteet).
- race: valitsette ensimmäisenä valmistuvan (aikakatkaisurakenteet).
- allSettled: keräätte kaikki lopputulokset tarkastelua varten.

Kombinaattorin valintavisa
Pikatarkistus: Ensimmäisenä fulfilled-tilaan siirtyvä tulos.

Kertaus
Kertaus: Käyttäkää all-menetelmää, kun ”kaikki tarvitaan”, any-menetelmää ”ensimmäiseen onnistumiseen”, race-menetelmää ”ensimmäisenä lopulliseen tilaan siirtyvään” ja allSettled-menetelmää kaikkien lopputulosten tarkasteluun ilman käsittelyn ennenaikaista keskeyttämistä.

Opi JavaScript tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 59
- Oppitunnit
- 200
Usein kysytyt kysymykset
Onko oppitunti ”Promise.all / any / race / allSettled — valitse oikea työkalu” ilmainen?
Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa JavaScript Academy-oppimispolun 3 oppituntia, myös oppitunnin “Promise.all / any / race / allSettled — valitse oikea työkalu”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. JavaScript Academy-kurssilla on yhteensä 3 oppituntia.
Mitä opin oppitunnilla ”Promise.all / any / race / allSettled — valitse oikea työkalu”?
Harjoittele Promisen yhdistelymetodeja: all, any, race ja allSettled. Opi onnistumis- ja epäonnistumiskäyttäytyminen sekä se, milloin kutakin käytetään Harjoittelet JavaScript Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni JavaScript Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin JavaScript Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 3/3.
Kuinka kauan ”Promise.all / any / race / allSettled — valitse oikea työkalu”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä JavaScript Academy-oppitunnilla?
Kyllä. Jokainen JavaScript Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Tapahtumasilmukka ja tehtävien sekä mikrotehtävien perusteet
- Promiset — tilat, ketjutus ja virheenkäsittely
- Promise.all / any / race / allSettled — valitse oikea työkalu