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:
let 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:
let 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):
promise.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:
promise.then(function(result) {
console.log(result); // do të shfaqë rezultatin e premisit
}, function(error) {
console.log(error); // do të shfaqë tekstin e gabimit
});
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.