Situatat e jashtëzakonshme në Premiset në JavaScript

Tani le të mësojmë se si të trajtojmë situatat e jashtëzakonshme që ndodhin brenda një premisi. Në rast të shfaqjes së një situate të tillë, ne duhet të refuzojmë premisin duke përdorur një funksion të veçantë refuzimi, i cili automatikisht futet në parametrin e dytë të funksionit të premisit:

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

Brenda funksionit të premisit ne duhet të thërrasim resolve, nëse gjithçka ka shkuar normalisht, ose reject, nëse ka shfaqur një situatë të jashtëzakonshme:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    let isError = false;
    
    if (!isError) {
      resolve([1, 2, 3, 4, 5]);   // të dhënat e premisit
    } else {
      reject('error in promise'); // teksti juaj i gabimit
    }
  }, 3000);
});

Pastaj në metodën then parametrat duhet t'i kaloni jo një, por dy funksione: i pari do të funksionojë, nëse premisi ka funksionuar normalisht (u zgjidh), ndërsa i dyti - nëse ka funksionuar me gabim (u refuzua):

javascriptpromise.then(
  function(result) {
    console.log(result); // do të shfaqë rezultatin e premisit
  },
  function(error) {
    console.log(error);  // do të shfaqë tekstin e gabimit
  }
);

Si rregull, kodin e mësipërm e shkruajnë më kompakt, kështu:

javascriptpromise.then(function(result) {
  console.log(result); // do të shfaqë rezultatin e premisit
}, function(error) {
  console.log(error);  // do të shfaqë tekstin e gabimit
});
Задание 1

Krijoni një kod asinkron që do të gjenerojë numra të rastësishëm nga 0 në 5. Mbuloni gjithçka këtë në një premis. Le të kthejë premisi si rezultat rezultatin e pjesëtimit të njëshes me numrin e gjeneruar. Le të ekzekutohet premisi me gabim, nëse ka ndodhur pjesëtim me zero, dhe me sukses në të gjitha rastet e tjera.