⊗jsSpPrmEx 163 of 294 menu

Wyjątkowe sytuacje w promisach w JavaScript

Nauczmy się teraz obsługiwać wyjątkowe sytuacje, które wystąpiły wewnątrz promisa. W przypadku wystąpienia takiej sytuacji powinniśmy odrzucić promisa za pomocą specjalnej funkcji odrzucenia, która automatycznie trafia do drugiego parametru funkcji promisa:

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

Wewnątrz funkcji promisa powinniśmy wywołać resolve, jeśli wszystko przebiegło normalnie, albo reject, jeśli wystąpiła wyjątkowa sytuacja:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // dane promisa } else { reject('error in promise'); // twój tekst błędu } }, 3000); });

Następnie w metodzie then parametrami należy przekazać nie jedną, ale dwie funkcje: pierwsza zadziała, jeśli promis zadziałał normalnie (został rozwiązany), a druga - jeśli zadziałał z błędem (został odrzucony):

promise.then( function(result) { console.log(result); // wyświetli wynik promisa }, function(error) { console.log(error); // wyświetli tekst błędu } );

Zazwyczaj powyższy kod zapisuje się bardziej zwięźle, w ten sposób:

promise.then(function(result) { console.log(result); // wyświetli wynik promisa }, function(error) { console.log(error); // wyświetli tekst błędu });

Stwórz asynchroniczny kod, który będzie generował losowe liczby od 0 do 5. Opakuj to wszystko w promisa. Niech promis swoim wynikiem zwraca wynik dzielenia jedności przez wygenerowaną liczbę. Niech promis wykona się z błędem, jeśli nastąpiło dzielenie przez zero, i z sukcesem we wszystkich pozostałych przypadkach.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć