Wyjątkowe sytuacje w promisach w JavaScript

Nauczmy się teraz obsługiwać wyjątkowe sytuacje, które wystąpiły wewnątrz promisa. W przypadku wystąpienia takiej sytuacji powinniśmy odrzucić promisa za pomocą specjalnej funkcji odrzucenia, która automatycznie trafia do drugiego parametru funkcji promisa:

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

Wewnątrz funkcji promisa powinniśmy wywołać resolve, jeśli wszystko przebiegło normalnie, albo reject, jeśli wystąpiła wyjątkowa sytuacja:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // dane promisa
    } else {
      reject('error in promise'); // twój tekst błędu
    }
  }, 3000);
});

Następnie w metodzie then parametrami należy przekazać nie jedną, ale dwie funkcje: pierwsza zadziała, jeśli promis zadziałał normalnie (został rozwiązany), a druga - jeśli zadziałał z błędem (został odrzucony):

javascriptpromise.then(
  function(result) {
    console.log(result); // wyświetli wynik promisa
  },
  function(error) {
    console.log(error);  // wyświetli tekst błędu
  }
);

Zazwyczaj powyższy kod zapisuje się bardziej zwięźle, w ten sposób:

javascriptpromise.then(function(result) {
  console.log(result); // wyświetli wynik promisa
}, function(error) {
  console.log(error);  // wyświetli tekst błędu
});
Задание 1

Stwórz asynchroniczny kod, który będzie generował losowe liczby od 0 do 5. Opakuj to wszystko w promisa. Niech promis swoim wynikiem zwraca wynik dzielenia jedności przez wygenerowaną liczbę. Niech promis wykona się z błędem, jeśli nastąpiło dzielenie przez zero, i z sukcesem we wszystkich pozostałych przypadkach.