Unntakssituasjoner i promises i JavaScript

La oss nå lære å håndtere unntakssituasjoner som oppstår inne i et promise. I tilfelle en slik situasjon oppstår må vi avvise promise ved hjelp av en spesiell avvisningsfunksjon, som automatisk blir plassert i den andre parameteren til promise-funksjonen:

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

Inne i promise-funksjonen må vi kalle resolve hvis alt gikk normalt, eller reject hvis det oppstod en unntakssituasjon:

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 feiltekst
    }
  }, 3000);
});

Deretter i metoden then må du sende ikke én, men to funksjoner som parametere: den første vil kjøres hvis promise fungerte normalt (resolved), og den andre - hvis det fungerte med feil (rejected):

javascriptpromise.then(
  function(result) {
    console.log(result); // vil vise promise-resultatet
  },
  function(error) {
    console.log(error);  // vil vise feilteksten
  }
);

Som regel skrives koden ovenfor mer kompakt, slik:

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

Lag asynkron kode som vil generere tilfeldige tall fra 0 til 5. Pakke alt inn i et promise. La promise returnere resultatet av å dele en på det genererte tallet som sitt resultat. La promise fullføres med feil, hvis det skjedde en divisjon med null, og med suksess i alle andre tilfeller.