Выключныя сітуацыі ў промісах у 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.
Абярэце ўсё гэта ў проміс. Хай проміс сваім вынікам
вяртае вынік дзялення адзінкі на згенераваны
лік. Хай проміс выканаецца з памылкай,
калі адбылося дзяленне на нуль, і з поспехам
ва ўсіх астатніх выпадках.