Izuzetne situacije u promisima u JavaScript-u

Hajde sada da naučimo kako da rukujemo izuzetnim situacjama koje su se desile unutar promisa. U slučaju nastanka takve situacije, moramo da odbijemo promis pomoću specijalne funkcije za odbijanje, koja automatski dolazi kao drugi parametar funkcije promisa:

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

Unutar funkcije promisa moramo da pozovemo resolve, ako je sve prošlo normalno, ili reject, ako je nastupila izuzetna situacija:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // podaci promisa
    } else {
      reject('error in promise'); // vaš tekst greške
    }
  }, 3000);
});

Zatim u metodu then parametrima treba da prosledite ne jednu, već dve funkcije: prva će se izvršiti, ako je promis uspešno završen (rezolvirao se), a druga - ako se završio sa greškom (rejectovao se):

javascriptpromise.then(
  function(result) {
    console.log(result); // ispisaće rezultat promisa
  },
  function(error) {
    console.log(error);  // ispisaće tekst greške
  }
);

U pravilu, gore navedeni kod se zapisuje kompaktnije, ovako:

javascriptpromise.then(function(result) {
  console.log(result); // ispisaće rezultat promisa
}, function(error) {
  console.log(error);  // ispisaće tekst greške
});
Задание 1

Napravite asinhroni kod koji će generisati slučajne brojeve od 0 do 5. Obavite sve ovo u promisu. Neka promis svojim rezultatom vrati rezultat deljenja jedinice sa generisanim brojem. Neka se promis izvrši sa greškom, ako se desilo deljenje sa nulom, i uspešno u svim ostalim slučajevima.