JavaScript'теги Promise'дин уч абалы

Promise үч абалдын биринде болушу мүмкүн. Түзүлгөндө Promise күтүүдө болот (pending), андан кийин ал аткарылган (fulfilled) абалга өтүп, натыйжаны кайтарышы же четке кагылган (rejected) абалга өтүп, кабыл алуунун себебин кайтарышы мүмкүн. Сиз төмөндөгү кодду иштетип, бир абалдан экинчисине өтүүнү көрө аласыз:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false; // же true, же false койгула
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);
    } else {
      reject('promise'деги ката');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // ар секунд сайын promise'ти консолго чыгарабыз
}, 1000);

fulfilled жана rejected абалдары өзгөрбөстүгүн эске алыңыз: эгерде promise ушул абалдардын бирине өтсө, анда ал эч качан башкасына өтө албайт. Мисал келтирип көрөлү. Төмөндөгү коддо reject чакырылышы эрте болот, ошондуктан resolve чакырылышы эске алынбай калат:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(() => reject(new Error('ката')), 1000);
  setTimeout(() => resolve('эске алынбады'), 2000);
});
Задание 1

Белгилүү бир убакыттан кийин ийгиликтүү аткарыла турган promise түзгүлө. Аны консолго чыгарып, анын баштапкы абалын жана аяктаган абалын изилдегиле.

Задание 2

Белгилүү бир убакыттан кийин ийгиликсиз аткарыла турган promise түзгүлө. Аны консолго чыгарып, анын баштапкы абалын жана аяктаган абалын изилдегиле.