Zinxhirët e Premtimeve në JavaScript
Le të kemi premtimin e mëposhtëm:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Pas përfundimit të premtimit, le të shfaqim rezultatin e tij në konsol:
promise.then(
function(result) {
console.log(result); // do të shfaqë 'string'
}
)
Tani, në vend që ta shfaqim menjëherë rezultatin,
le ta modifikojmë atë dhe ta kthejmë përmes return:
promise.then(
function(result) {
return result + '!';
}
);
Në këtë rast, ne mund të aplikojmë një then tjetër
në rezultatin e then tonë, duke krijuar kështu
një zinxhir metodash. Në këtë mënyrë,
rezultati i metodës pasuese do të marrë
atë që u kthye nga return i mëparshmi:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // do të shfaqë 'string!'
}
);
Kështu mund të ndërtohet një zinxhir i çfarëdo gjatësie:
promise.then(
function(result) {
return result + '1';
}
).then(
function(result) {
return result + '2';
}
).then(
function(result) {
return result + '3';
}
).then(
function(result) {
console.log(result); // do të shfaqë 'string123'
}
);