JS 

Promise

Parengė: Martynas Kašelionis

From zero to hero

Kada naudojamas

Promise naudojamas su asincroninėm operacijom:

  • API call
  • DB call
  • IO calls

JS Promise

  • Kūrimas
  • Darbas su Promise

Kūrimas

new Promise( /* executor */ function(resolve, reject) { ... } );

Pavyzdys

let iSusitikimaAtvyko;
iSusitikimaAtvyko = false;
promise3 = new Promise(function(resolve, reject) {
    if (iSusitikimaAtvyko) {
        resolve("Jis laikosi savo zodzio");
    } else {
        reject("Sis zmogus neislaiko savo zodzio");
    }
});
console.log(promise3);

Promise objektas

  • Promise objektas - reiškia galimą promise asinchroninės operacijos  įvykdymą(arba neįvykdymą) ir gražinamą reikšmę.

Statiniai metodai

Pavyzdys

let pazadas = new Promise(function(resolve, reject) {
    kompoKaina = 20000;
    santaupos = 10000;
    if (santaupos > kompoKaina) {
        resolve({
            brand: "MacBook",
            model: "Pro"
        });
    } else {
        reject("Neturi pakankamai pinigu. Dirbk toliau");
    }
});pazadas.then(function(value) {
    console.log("Pagaliau nusipirkau nauja kompa ", JSON.stringify(value));
});pazadas.catch(function(reason) {
    console.log("Negaliu nusipirkti kompo, nes ", reason);
});pazadas.finally(function() {
    console.log(
        "Vistiek tapsiu geru programuotoju"
    );
});

Reali situacija

const fetchWeather = async () => {
    weather = await fetch(
        'https://api.example.com'
    ).then(res => res.json());
};

Reali situacija

const fetchWeather = async () => {
    weather = await fetch(
        'https://api.example.com'
    ).then(res => res.json());
};

JS Promise

By Martynas Kašelionis