⊗jsSpPrmEx 163 of 294 menu

Výnimkové situácie v promisoch v JavaScripte

Poďme sa teraz naučiť spracovávať výnimkové situácie, ktoré nastali vnútri promisu. V prípade vzniku takejto situácie musíme zamietnuť promis pomocou špeciálnej funkcie zamietnutia, ktorá automaticky prechádza do druhého parametra funkcie promisu:

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

Vnútri funkcie promisu musíme zavolať resolve, ak všetko prebehlo normálne, alebo reject, ak nastala výnimková situácia:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // dáta promisu } else { reject('error in promise'); // váš text chyby } }, 3000); });

Potom v metóde then parametrami musíte odovzdať nie jednu, ale dve funkcie: prvá zafunguje, ak promis fungoval normálne (zarezolvoval sa), a druhá - ak fungoval s chybou (zarejektoval sa):

promise.then( function(result) { console.log(result); // vypíše výsledok promisu }, function(error) { console.log(error); // vypíše text chyby } );

Spravidla sa vyššie uvedený kód zapisuje kompaktnejšie, takto:

promise.then(function(result) { console.log(result); // vypíše výsledok promisu }, function(error) { console.log(error); // vypíše text chyby });

Vytvorte asynchrónny kód, ktorý bude generovať náhodné čísla od 0 do 5. Zabaľte to všetko do promisu. Nech promis svojím výsledkom vráti výsledok delenia jednotky vygenerovaným číslom. Nech sa promis vykoná s chybou, ak došlo k deleniu nulou, a s úspechom vo všetkých ostatných prípadoch.

Slovenčina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť