Uitsonderlike situasies in beloftes in JavaScript

Laat ons nou leer hoe om uitsonderlike situasies wat binne 'n belofte plaasgevind het, te hanteer. In die geval van so 'n situasie moet ons die belofte verwerp met behulp van 'n spesiale verwerpingsfunksie, wat outomaties in die tweede parameter van die beloftese funksie beland:

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

Binne die beloftese funksie moet ons resolve aanroep, indien alles normaal verloop het, of reject, indien daar 'n uitsonderlike situasie ontstaan het:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // data van die belofte
    } else {
      reject('fout in belofte'); // jou foutteks
    }
  }, 3000);
});

Dan moet jy in die then metode nie een nie, maar twee funksies as parameters oordra: die eerste sal werk as die belofte normaal uitgevoer het (resolved), en die tweede - as dit met 'n fout uitgevoer het (rejected):

javascriptpromise.then(
  function(result) {
    console.log(result); // sal die resultaat van die belofte uitdruk
  },
  function(error) {
    console.log(error);  // sal die foutteks uitdruk
  }
);

Gewoonlik word die bostaande kode meer kompak geskryf, soos volg:

javascriptpromise.then(function(result) {
  console.log(result); // sal die resultaat van die belofte uitdruk
}, function(error) {
  console.log(error);  // sal die foutteks uitdruk
});
Задание 1

Maak 'n asinkrone kode wat lukrake getalle sal genereer van 0 tot 5. Pak alles in 'n belofte. Laat die belofte sy resultaat die resultaat van die deling van een deur die gegenereerde getal teruggee. Laat die belofte met 'n fout voltooi, indien deling deur nul plaasgevind het, en met sukses in alle ander gevalle.