Undantagssituationer i promiser i JavaScript

Låt oss nu lära oss att hantera undantagssituationer som inträffar inuti en promise. Om en sådan situation uppstår bör vi avvisa promisen med hjälp av en speciell avvisningsfunktion, som automatiskt hamnar i den andra parametern i promise-funktionen:

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

Inuti promise-funktionen bör vi anropa resolve om allt gick normalt, eller reject om en undantagssituation uppstod:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // promise-data
    } else {
      reject('error in promise'); // din feltext
    }
  }, 3000);
});

Sedan i metoden then ska du skicka inte en, utan två funktioner som parametrar: den första kommer att triggas om promisen fungerade normalt (löstes), och den andra - om den fungerade med ett fel (avvisades):

javascriptpromise.then(
  function(result) {
    console.log(result); // visar promise-resultatet
  },
  function(error) {
    console.log(error);  // visar feltexten
  }
);

Som regel skrivs koden ovan mer kompakt, så här:

javascriptpromise.then(function(result) {
  console.log(result); // visar promise-resultatet
}, function(error) {
  console.log(error);  // visar feltexten
});
Задание 1

Skapa en asynkron kod som genererar slumpmässiga tal från 0 till 5. Svep in allt detta i en promise. Låt promisen returnera resultatet av att dela ett med det genererade talet. Låt promisen uppfylla med ett fel om division med noll inträffade, och med framgång i alla andra fall.