JavaScript-də Promise-lərdə İstisna Halları
Gəlin indi promise daxilində baş verən istisna hallarını necə idarə edəcəyimizi öyrənək. Belə bir vəziyyət yaranması halında, biz promise-i xüsusi bir rədd etmə funksiyası vasitəsilə rədd etməliyik, hansı ki, avtomatik olaraq promise funksiyasının ikinci parametrinə daxil olur:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
...
}, 3000);
});
Promise funksiyasının daxilində biz
resolve çağırmalıyıq, əgər hər şey normal
getdisə, ya da
reject, əgər istisna halları yarandısa:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false;
if (!isError) {
resolve([1, 2, 3, 4, 5]); // promise məlumatı
} else {
reject('promise-də xəta'); // sizin xəta mətni
}
}, 3000);
});
Sonra, then metodunda parametr olaraq bir deyil,
iki funksiya ötürməlisiniz: birincisi, əgər promise normal
işlədisə (resolve oldu) işləyəcək,
ikincisi isə - əgər xəta ilə işlədisə (reject oldu):
promise.then(
function(result) {
console.log(result); // promise nəticəsini göstərəcək
},
function(error) {
console.log(error); // xəta mətni göstərəcək
}
);
Bir qayda olaraq, yuxarıda göstərilən kod daha yığcam şəkildə, belə yazılır:
promise.then(function(result) {
console.log(result); // promise nəticəsini göstərəcək
}, function(error) {
console.log(error); // xəta mətni göstərəcək
});
0-dan 5-ə qədər təsadüfi ədədlər yaradan
asinxron kod yazın.
Bütün bunları promise içinə alın. Promise nəticə olaraq
vahidin yaradılan ədədə bölünməsinin nəticəsini qaytarsın.
Promise-in sıfıra bölmə baş verdikdə xəta ilə,
digər bütün hallarda isə uğurla yerinə yetirilməsini təmin edin.