patryk-developer
5/18/2018 - 9:45 AM

Obietnice - Promisy

Obietnica (ang. promise) jest obiektem, do którego zostają przekazane dwie funkcje zwrotne. Pierwsza z nich reprezentuje pomyślną odpowiedź, natomiast druga — odpowiedź, która zakończyła się błędem.

Po pierwsze, aby używać obietnicy, musimy zwrócić jej obiekt. A po wtóre, do utworzenia obiektu obietnicy konieczna jest funkcja pobierająca dwie funkcje zwrotne.

//  obietnice, async i await oraz programowanie asynchroniczne
//  ===========

// Koniecznie należy zagwarantować, że zainstalowan jest wersją nodejs 4
// lub nowsza: 

// sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 68576280
// sudo apt-add-repository 'deb https://deb.nodesource.com/node_4.x precise main'
// sudo apt-get update
// sudo apt-get install nodejs

//  obietnice
//  ===

function fnDelayedPromise (resolve: () => void, reject: () => void) {
  function afterTimeout() {
    resolve();
  }
  setTimeout( afterTimeout, 2000);
}

function delayedResponsePromise() : Promise<void> {
  return new Promise<void>(
  fnDelayedPromise
  );
}

function delayedPromise(): Promise<void> {
  return new Promise<void>
  (
    (resolve: () => void, reject: () => void) => {
    function afterTimeout() {
      resolve();
    }
    setTimeout( afterTimeout, 1000);
    }
  );
}

function callErrorPromise() {
console.log(`wywołujemy obietnicę errorPromise`);
errorPromise().then(
() => { console.log(`Nie ma błędu.`) }
).catch(
() => { console.log(`Wystąpił błąd.`)}
);
}
callErrorPromise();