Изузетне ситуације у промису у 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 параметрима морате
проследити не једну, већ две функције: прва ће се извршити,
ако је промис радио нормално (resolved),
а друга - ако је радио са грешком (rejected):
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.
Све то обавите у промису. Нека промис својим резултатом
враћа резултат дељења јединице са генерисаним
бројем. Нека се промис изврши са грешком,
ако се десило дељење са нулом, и са успехом
у свим осталим случајевима.