JavaScript-də Promise-in vəziyyətləri

Promise üç vəziyyətdən birində ola bilər. Yaradıldıqda Promise gözləmə vəziyyətində olur (pending), sonra isə yerinə yetirilmiş (fulfilled) vəziyyətinə keçə bilər və nəticə qaytara bilər, ya da rədd edilmiş (rejected) vəziyyətinə keçə bilər, səbəb qaytara bilər. Aşağıdakı kodu işə salmaqla bir vəziyyətdən digərinə keçidi izləyə bilərsiniz:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // ya true, ya da false qoyun
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('error in promise');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // hər saniyə promise-i konsola çıxarırıq
}, 1000);

Nəzərə alın ki, fulfilled və rejected vəziyyətləri dəyişməzdir: əgər promise bu vəziyyətlərdən birinə keçibsə, artıq digərinə keçə bilməz. Nümunəyə baxaq. Aşağıdakı kodda reject çağırışı daha tez baş verəcək, buna görə də resolve çağırışı laqeyd qalınacaq:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error('error')), 1000);
  setTimeout(() => resolve('ignored'), 2000);
});
Задание 1

Müəyyən müddətdən sonra uğurla yerinə yetiriləcək bir promise yaradın. Onu konsola çıxarın və ilkin vəziyyətini və tamamlanmış vəziyyətini öyrənin.

Задание 2

Müəyyən müddətdən sonra uğursuzluqla nəticələnəcək bir promise yaradın. Onu konsola çıxarın və ilkin vəziyyətini və tamamlanmış vəziyyətini öyrənin.