Beloftekettinge in JavaScript
Gestel ons het die volgende belofte:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Na die voltooiing van die belofte, vertoon ons die resultaat daarvan in die konsole:
promise.then(
function(result) {
console.log(result); // sal 'string' vertoon
}
)
Laat ons nou nie die resultaat onmiddellik vertoon nie,
maar dit op een of ander manier verander en terugstuur deur return:
promise.then(
function(result) {
return result + '!';
}
);
In hierdie geval kan ons nog 'n then op die resultaat van ons
then toepas, en sodoende 'n ketting van metodes skep. Die
resultaat van die volgende metode sal wees
wat die vorige een deur return teruggestuur het:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // sal 'string!' vertoon
}
);
Sodoende kan 'n ketting van enige lengte gebou word:
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); // sal 'string123' vertoon
}
);