⊗jsSpPrmEx 163 of 294 menu

Výjimečné situace v promisách v JavaScriptu

Nyní se naučme zacházet s výjimečnými situacemi, které nastaly uvnitř promisy. V případě vzniku takové situace musíme zamítnout promisu pomocí speciální funkce zamítnutí, která automaticky spadá do druhého parametru funkce promisy:

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

Uvnitř funkce promisy musíme zavolat resolve, pokud vše proběhlo normálně, nebo reject, pokud nastala výjimečná situace:

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

Poté v metodě then parametry musíte předat ne jednu, ale dvě funkce: první se spustí, pokud promisa fungovala normálně (byla resolve), a druhá - pokud fungovala s chybou (byla reject):

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

Zpravidla se výše uvedený kód zapisuje kompaktněji, takto:

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

Vytvořte asynchronní kód, který bude generovat náhodná čísla od 0 do 5. Zabalte vše do promisy. Nechť promisa svým výsledkem vrací výsledek dělení jedničky vygenerovaným číslem. Nechť se promisa splní s chybou, pokud došlo k dělení nulou, a s úspěchem ve všech ostatních případech.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout