⊗jsSpPrmEx 163 of 294 menu

Изключителни ситуации в промиси в JavaScript

Нека сега се научим да обработваме изключителни ситуации, възникнали вътре в промис. В случай на възникване на такава ситуация трябва да отхвърлим промиса с помощта на специална функция за отхвърляне, която автоматично попада във втория параметър на функцията на промиса:

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

Вътре във функцията на промиса трябва да извикаме resolve, ако всичко мина нормално, или reject, ако възникне изключителна ситуация:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // данни на промиса } else { reject('error in promise'); // вашия текст за грешка } }, 3000); });

След това в метода then трябва да подадете като параметри не една, а две функции: първата ще се задейства, ако промисът се изпълни нормално (резолвнал се), а втората - ако се изпълни с грешка (реджектнал се):

promise.then( function(result) { console.log(result); // ще изведе резултата от промиса }, function(error) { console.log(error); // ще изведе текста на грешката } );

Като правило, горният код се записва по-компактно, ето така:

promise.then(function(result) { console.log(result); // ще изведе резултата от промиса }, function(error) { console.log(error); // ще изведе текста на грешката });

Направете асинхронен код, който ще генерира случайни числа от 0 до 5. Обърнете всичко това в промис. Нека промисът със своя резултат връща резултата от деленето на единица на генерираното число. Нека промисът се изпълни с грешка, ако е станало деление на нула, и успешно във всички останали случаи.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне