⊗jsSpPrmEx 163 of 294 menu

Izuzetne situacije u promisima u JavaScript-u

Hajde sada da naučimo kako da rukujemo izuzetnim situacjama koje su se desile unutar promisa. U slučaju nastanka takve situacije, moramo da odbijemo promis pomoću specijalne funkcije za odbijanje, koja automatski dolazi kao drugi parametar funkcije promisa:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

Unutar funkcije promisa moramo da pozovemo resolve, ako je sve prošlo normalno, ili reject, ako je nastupila izuzetna situacija:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // podaci promisa } else { reject('error in promise'); // vaš tekst greške } }, 3000); });

Zatim u metodu then parametrima treba da prosledite ne jednu, već dve funkcije: prva će se izvršiti, ako je promis uspešno završen (rezolvirao se), a druga - ako se završio sa greškom (rejectovao se):

promise.then( function(result) { console.log(result); // ispisaće rezultat promisa }, function(error) { console.log(error); // ispisaće tekst greške } );

U pravilu, gore navedeni kod se zapisuje kompaktnije, ovako:

promise.then(function(result) { console.log(result); // ispisaće rezultat promisa }, function(error) { console.log(error); // ispisaće tekst greške });

Napravite asinhroni kod koji će generisati slučajne brojeve od 0 do 5. Obavite sve ovo u promisu. Neka promis svojim rezultatom vrati rezultat deljenja jedinice sa generisanim brojem. Neka se promis izvrši sa greškom, ako se desilo deljenje sa nulom, i uspešno u svim ostalim slučajevima.

Srpski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Koristimo kolačiće za rad sajta, analitiku i personalizaciju. Obrada podataka se vrši u skladu sa Politikom privatnosti.
prihvati sve podesi odbij