⊗jsSpPrmEx 163 of 294 menu

Izņēmuma situācijas promisos JavaScript

Tagad iemācīsimies apstrādāt izņēmuma situācijas, kas radās promisa iekšienē. Šādas situācijas gadījumā mums ir jānoraida promiss, izmantojot īpašu noraidīšanas funkciju, kas automātiski nonāk otrajā promisa funkcijas parametrā:

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

Promisa funkcijas iekšienē mums ir jāizsauc resolve, ja viss notika normāli, vai reject, ja radās izņēmuma situācija:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // promisa dati } else { reject('kļūda promisā'); // jūsu kļūdas teksts } }, 3000); });

Pēc tam then metodā kā parametrus jāpadod nevis viena, bet divas funkcijas: pirmā darbosies, ja promiss nostrādāja normāli (izpildījās), bet otrā - ja nostrādāja ar kļūdu (tika noraidīts):

promise.then( function(result) { console.log(result); // izvadīs promisa rezultātu }, function(error) { console.log(error); // izvadīs kļūdas tekstu } );

Parasti iepriekš minētais kods tiek rakstīts kompaktāk, šādi:

promise.then(function(result) { console.log(result); // izvadīs promisa rezultātu }, function(error) { console.log(error); // izvadīs kļūdas tekstu });

Izveidojiet asinhronu kodu, kas ģenerēs nejaušus skaitļus no 0 līdz 5. Ietveriet to visu promisā. Ļaujiet promisam kā rezultātu atgriezt vienības dalījuma rezultātu ar ģenerēto skaitli. Ļaujiet promisam izpildīties ar kļūdu, ja notika dalījums ar nulli, un veiksmīgi visos pārējos gadījumos.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt