JavaScript Academy · Oppitunti

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

Oppitunti 3/38 vaihetta

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 / any / race / allSettled — valitse oikea työkalu — kuvitus 1

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.all / any / race / allSettled — valitse oikea työkalu — kuvitus 2

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.all / any / race / allSettled — valitse oikea työkalu — kuvitus 3

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.all / any / race / allSettled — valitse oikea työkalu — kuvitus 4

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; }));
});
Promise.all / any / race / allSettled — valitse oikea työkalu — kuvitus 5

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.
Promise.all / any / race / allSettled — valitse oikea työkalu — kuvitus 6

Kombinaattorin valintavisa

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

Promise.all / any / race / allSettled — valitse oikea työkalu — kuvitus 7

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ä.

Promise.all / any / race / allSettled — valitse oikea työkalu — kuvitus 8
Aloita maksutta

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

  1. Tapahtumasilmukka ja tehtävien sekä mikrotehtävien perusteet
  2. Promiset — tilat, ketjutus ja virheenkäsittely
  3. Promise.all / any / race / allSettled — valitse oikea työkalu
← Takaisin: JavaScript Academy