Promise-ok 23.11.20
Bevezetés
A Promise egy különleges osztály a ES-ben. A célja, hogy tudjunk olyan adatokkal, dolgozni, amelyek nem feltétlenül állnak rendelkezésre azonnal. Ebből kifolyólag egy Promise-nak 3 állapota lehet:
pending: Az adatra még várni kellfulfilled: Sikerült megszerezni a megfelelő adatotrejected: Valami hiba történt
A következőképp fog ez nekünk kódban kinézni:
let promise = new Promise((resolve, reject) => {
})
A Promise mindig egy függvényt kér paraméternek amit megadhatünk így nyílfüggvényként, vagy a következőképpen referenciaként is:
let promise = new Promise(func)
function func(resolve, reject) {
}
A lényeg, hogy a függvényünk ezzel a két paraméterrel rendelkezzen.
Innentől a függvényünk törzsében megvalósíthatjük a tetszőleges logikát, ami a resolve és a reject paramétereket fogja felhasználni.
Például kérjünk egy random számot és ha páros, akkor sikerült teljesíteni a Promise-t, ha páratlan akkor nem.
let promise = new Promise(func);
function func(resolve, reject) {
let random = Math.random();
if (random % 2 == 0) {
resolve("Paros");
} else {
reject("Paratlan");
}
}
Most, hogy megvan a Promise-unk, már csak fel kellene tudnunk használni. Az elkészült változónkon fogunk tudni két
függvényt h1vni, a then()-t és a catch()-t. Az előbbi akkor fog lefutni, ha sikeresen teljesült a Promise, az utóbbi
pedig amikor meghiusult.
Nézzük meg a gyakorlatban:
promise.then((uzenet) => "Sikerult a Promise: " + uzenet).catch((uzenet) => "Meghiusult a Promise: " + uzenet);
Promise() esetén.\pagebreak