Izjemne situacije v promisih v JavaScript

Zdaj se naučimo obvladovati izjemne situacije, ki se zgodijo znotraj promisa. V primeru pojavitve takšne situacije moramo zavrniti promis s pomočjo posebne funkcije za zavrnitev, ki samodejno pride v drugi parameter funkcije promisa:

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

Znotraj funkcije promisa moramo poklicati resolve, če je vse potekalo normalno, ali reject, če je prišlo do izjemne situacije:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // podatki promisa
    } else {
      reject('napaka v promisu'); // vaše besedilo napake
    }
  }, 3000);
});

Nato morate v metodi then kot parametre predati ne eno, ampak dve funkciji: prva bo delovala, če je promis deloval normalno (se je razrešil), druga pa - če je deloval z napako (se je zavrnil):

javascriptpromise.then(
  function(result) {
    console.log(result); // izpiše rezultat promisa
  },
  function(error) {
    console.log(error);  // izpiše besedilo napake
  }
);

Praviloma zgornjo kodo zapišejo bolj strnjeno, takole:

javascriptpromise.then(function(result) {
  console.log(result); // izpiše rezultat promisa
}, function(error) {
  console.log(error);  // izpiše besedilo napake
});
Задание 1

Naredite asinhrono kodo, ki bo generirala naključna števila od 0 do 5. Vse to zavijte v promis. Naj promis kot rezultat vrne rezultat deljenja enice z generiranim številom. Naj se promis izvede z napako, če je prišlo do deljenja z nič, in z uspehom v vseh drugih primerih.