JavaScript-ում պրոմիսի վիճակները

Պրոմիսը կարող է գտնվել երեք վիճակներից մեկում։ Ստեղծման պահին պրոմիսը գտնվում է սպասման մեջ (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

Ստեղծեք մի պրոմիս, որը որոշ ժամանակ անց կձախողվի։ Տպեք այն կոնսոլում և ուսումնասիրեք դրա սկզբնական և ավարտված վիճակները։