⊗jsSpPrmEx 163 of 294 menu

Išimtinės situacijos "Promise" objektuose JavaScript

Dabar išmokime apdoroti išimtines situacijas, atsiradusias "Promise" objekte. Tokios situacijos atveju mes turime atminti "promise" naudojant specialią atmetimo funkciją, kuri automatiškai patenka į antrą "promise" funkcijos parametrą:

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

"Promise" funkcijos viduje mes turime išsiųsti resolve, jei viskas praėjo normaliai, arba reject, jei kilo išimtinė situacija:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // "promise" duomenys } else { reject('klaida "promise"'); // jūsų klaidos pranešimas } }, 3000); });

Tada then metode parametrais turite perduoti ne vieną, o dvi funkcijas: pirmoji veiks, jei "promise" įvykdytas sėkmingai (resolved), o antroji - jei įvykdyta su klaida (rejected):

promise.then( function(result) { console.log(result); // atvaizduos "promise" rezultatą }, function(error) { console.log(error); // atvaizduos klaidos pranešimą } );

Paprastai, aukščiau pateiktas kodas rašomas kompaktiškiau, štai taip:

promise.then(function(result) { console.log(result); // atvaizduos "promise" rezultatą }, function(error) { console.log(error); // atvaizduos klaidos pranešimą });

Sukurkite asinchroninį kodą, kuris generuos atsitiktinius skaičius nuo 0 iki 5. Apgaubkite visą tai "promise" objekte. Tegul "promise" savo rezultatu grąžina vieneto dalybos iš sugeneruoto skaičiaus rezultatą. Tegul "promise" įvykdomas su klaida, jei įvyko dalyba iš nulio, ir sėkmingai visais kitais atvejais.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti