⊗jsSpPrmEx 163 of 294 menu

Situații excepționale în promisiunile din JavaScript

Să învățăm acum să gestionăm situațiile excepționale care apar în interiorul unei promisiuni. În cazul apariției unei astfel de situații, trebuie să respingem promisiunea folosind o funcție specială de respingere, care este transmisă automat ca al doilea parametru al funcției executor a promisiunii:

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

În interiorul funcției executor a promisiunii, trebuie să apelăm resolve, dacă totul a decurs normal, sau reject, dacă a apărut o situație excepțională:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // datele promisiunii } else { reject('error in promise'); // textul erorii dvs. } }, 3000); });

Apoi, în metoda then, trebuie să transmiteți ca parametri nu una, ci două funcții: prima va fi executată dacă promisiunea s-a finalizat cu succes (s-a rezolvat), iar a doua - dacă s-a finalizat cu o eroare (s-a respins):

promise.then( function(result) { console.log(result); // va afișa rezultatul promisiunii }, function(error) { console.log(error); // va afișa textul erorii } );

De regulă, codul de mai sus este scris mai compact, astfel:

promise.then(function(result) { console.log(result); // va afișa rezultatul promisiunii }, function(error) { console.log(error); // va afișa textul erorii });

Creați un cod asincron care va genera numere aleatorii de la 0 la 5. Încorporați toate acestea într-o promisiune. Fie ca promisiunea să returneze ca rezultat rezultatul împărțirii unu la numărul generat. Fie ca promisiunea să se finalizeze cu o eroare, dacă a avut loc împărțire la zero, și cu succes în toate celelalte cazuri.

Română
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Folosim cookie pentru funcționarea site-ului, analiză și personalizare. Prelucrarea datelor are loc în conformitate cu Politica de confidențialitate.
acceptă toate configurează respinge