JavaScript да промислар занжири
Фарз қилайлик, бизда куйидаги промис бор:
let promise = new Promise(function(resolve, reject) {
setTimeout(function() {
resolve('string');
}, 3000);
});
Промис тугаганида унинг натижасини консольга чиқарамиз:
promise.then(
function(result) {
console.log(result); // чиқаради 'string'
}
)
Энди натижани дарҳол чиқармасдан,
уни ўзгартириб, return орқали қайтарамиз:
promise.then(
function(result) {
return result + '!';
}
);
Бунда холда биз
then натижасига яна бир then ни қўллаш орқали
занжир яратишимиз мумкин. Бунда
кейинги методга олдинги return орқали қайтарган
нарса тушadi:
promise.then(
function(result) {
return result + '!';
}
).then(
function(result) {
console.log(result); // чиқаради 'string!'
}
);
Шу тарзда исталган узунликдаги занжирни куриш мумкин:
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); // чиқаради 'string123'
}
);