JavaScript да Промис ҳолатлари

Промис учта ҳолатнинг бирида бўлиши мумкин. Яратилганда промис кутishда бўлади (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('error in promise');
    }
  }, 3000);
});

setInterval(function() {
  console.log(promise); // ҳар сонияда промисни консолга чиқарамиз
}, 1000);

Эътибор берингки, fulfilled ва rejected ҳолатлари ўзгармас: агар промис ушбу ҳолатларнинг бирига ўтган бўлса, унинг бошқа ҳолатга ўтиши мумкин эмас. Келибги мисолда кўрамиз. Қуйидаги кодда reject чақириги аввал рўй беради, шунинг учун resolve чақириги эътиборга олинмайди:

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

Маълум вақт ўтиб муваффақиятли бажариладиган промис яратинг. Уни консолга чиқариб, бошланғич ва якуний ҳолатларини ўрганинг.

Задание 2

Маълум вақт ўтиб муваффақиятсиз бажариладиган промис яратинг. Уни консолга чиқариб, бошланғич ва якуний ҳолатларини ўрганинг.