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-ке дейін кездейсоқ сандар
жасайтын асинхронды код жасаңыз.
Мұның бәрін промиске ораңыз. Промис өз нәтижесі ретінде
бірлікті жасалған санға бөлу нәтижесін қайтарсын.
Егер нөлге бөлу орын алса, промис қателікпен орындалсын,
ал қалған барлық жағдайларда сәтті аяқталсын.