Promise-ok

Promise-ok

Közepes

Bevezetés

Mielőtt megjelent a Promise osztály, az aszinkron kód kezelésének csak egyetlen módja létezett: a callback-minta.

A callback egy olyan függvény, amelyet argumentumként adunk át egy másik függvénynek, és amely akkor hívódik meg, amikor a másik függvényben valamilyen művelet befejeződött. Az ilyen callback-függvényeknél gyakori minta, hogy első paraméterként egy „error” értéket fogadnak (lásd az alábbi példát).

function callback(error, arg2, arg3) {}

Hogyan kapcsolódik mindez az aszinkron kódhoz?

Történelmileg a callback-minta tette lehetővé, hogy egy aszinkron feladat befejeződése után elvégezzünk valamilyen munkát, anélkül hogy blokkolnánk az egész programot.

fetchProduct(productId, function (error, data) {
  if (error) {
    // Handle the error
  } else {
    // Do some work
  }
});

A fenti példában a fetchProduct függvény (amely aszinkron) második argumentumként egy callback-függvényt kap, amely eldönti, mi történjen, amikor a termék adatai megérkeztek.

Utasítások

Ennek a feladatnak két célkitűzése van:

  1. Készíts egy promisify függvényt, amely egy „callback-mintát” használó függvényt olyan függvénnyé alakít, amely egy Promise-t ad vissza. Nézd meg az alábbi példát.
function fetchProduct(productId, function(error, data) {
    if (error) {
        // Handle the error
    } else {
        // Make something with your data
    }
})

const fetchProductAsPromise = promisify(fetchProduct);

// Now you got a function `fetchProductAsPromise`
// that returns a promise
fetchProductAsPromise(productId)
    .then((data) => {})
    .catch((error) => {});
  1. Valósítsd újra a következő beépített Promise-metódusokat (anélkül, hogy használnád őket)
  • all: egy promise-tömböt vesz át, és akkor teljesül, amikor mindegyik teljesült, vagy akkor utasítja el, amikor az egyikük elutasításra kerül.
  • allSettled: egy promise-tömböt vesz át, és akkor teljesül, amikor mindegyik vagy teljesült, vagy elutasításra került.
  • race: egy promise-tömböt vesz át, és az első teljesülő vagy elutasításra kerülő promise értékével teljesül vagy utasítja el.
  • any: egy promise-tömböt vesz át, és akkor teljesül, amikor az egyikük teljesül, vagy akkor utasítja el, amikor mindegyik elutasításra kerül.
Szerkesztés GitHubon A hivatkozás új ablakban vagy lapon nyílik meg
JavaScript Exercism

Készen állsz elkezdeni a(z) Promise-ok feladatot?

Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) JavaScript nyelvet 37 fogalom159 feladat segítségével, valódi emberi mentorálással, mindez ingyen.