Изключителни ситуации в промиси в 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 трябва да подадете като параметри не една, а две функции: първата ще се задейства, ако промисът се изпълни нормално (резолвнал се), а втората - ако се изпълни с грешка (реджектнал се):

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. Обърнете всичко това в промис. Нека промисът със своя резултат връща резултата от деленето на единица на генерираното число. Нека промисът се изпълни с грешка, ако е станало деление на нула, и успешно във всички останали случаи.