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();