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

Եկեք այժմ սովորենք մշակել պրոմիսի ներսում առաջացած իսկույն իրավիճակները: Նման իրավիճակի առաջացման դեպքում մենք պետք է մերժենք պրոմիսը օգտագործելով մերժման հատուկ ֆունկցիան, որը ավտոմատ կերպով հայտնվում է պրոմիսի ֆունկցիայի երկրորդ պարամետրում:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    ...
  }, 3000);
});

Պրոմիսի ֆունկցիայի ներսում մենք պետք է կանչենք resolve, եթե ամեն ինչ անցել է նորմալ, կամ reject, եթե առաջացել է իսկույն իրավիճակ:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // պրոմիսի տվյալները
    } else {
      reject('error in promise'); // ձեր սխալի տեքստը
    }
  }, 3000);
});

Այնուհետև then մեթոդում պարամետրերով դուք պետք է փոխանցեք ոչ թե մեկ, այլ երկու ֆունկցիա՝ առաջինը կգործի, եթե պրոմիսը աշխատել է նորմալ (⁅d⁼rezolvvel⁼/d⁆), իսկ երկրորդը՝ եթե աշխատել է սխալով (⁅d⁼zaredzhektvel⁼/d⁆):

javascriptpromise.then(
  function(result) {
    console.log(result); // կարտածի պրոմիսի արդյունքը
  },
  function(error) {
    console.log(error);  // կարտածի սխալի տեքստը
  }
);

Որպես կանոն, վերոնշյալ կոդը գրառում են ավելի կոմպակտ, ահա այսպես:

javascriptpromise.then(function(result) {
  console.log(result); // կարտածի պրոմիսի արդյունքը
}, function(error) {
  console.log(error);  // կարտածի սխալի տեքստը
});
Задание 1

Ստեղծեք ասինխրոն կոդ, որը կգեներացնի պատահական թվեր 0-ից մինչև 5: Ծրագրավորեք այս ամենը պրոմիսի մեջ: Թող պրոմիսն իր արդյունքում վերադարձնի մեկը գեներացված թվի վրա բաժանելու արդյունքը: Թող պրոմիսը կատարվի սխալով, եթե տեղի է ունեցել զրոյի վրա բաժանում, և հաջողությամբ մնացած բոլոր դեպքերում: