Gjendjet e Premtimit në JavaScript
Një premtim mund të jetë në një nga tre gjendjet. Kur krijohet, premtimi është në pritje (pending), pastaj mund të përmbushet (fulfilled), duke kthyer rezultatin e marrë, ose të refuzohet (rejected), duke kthyer shkakun e refuzimit. Ju mund të shikoni kalimin nga një gjendje në tjetrën duke ekzekutuar kodin e mëposhtëm:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
let isError = false; // vendosni ose true, ose false
if (!isError) {
resolve([1, 2, 3, 4, 5]);
} else {
reject('gabim në premtim');
}
}, 3000);
});
setInterval(function() {
console.log(promise); // çdo sekondë e shfaqim premtimin në konsol
}, 1000);
Kini parasysh që gjendjet fulfilled dhe rejected janë të pandryshueshme: nëse një premtim kalon në një nga këto gjendje, ai nuk do të mund të kalojë më në një tjetër. Le të shohim me një shembull. Në kodin e mëposhtëm thirrja reject do të ndodhë më herët, prandaj thirrja resolve do të injorohet:
let promise = new Promise(function(resolve, reject) {
setTimeout(() => reject(new Error('gabim')), 1000);
setTimeout(() => resolve('injoruar'), 2000);
});
Krijoni një premtim që do të përmbushet me sukses pas një kohe. Shfaqeni atë në konsol dhe studioni gjendjen e tij fillestare dhe të përfunduar.
Krijoni një premtim që do të përmbushet me dështim pas një kohe. Shfaqeni atë në konsol dhe studioni gjendjen e tij fillestare dhe të përfunduar.