Заминҳои ваъдаҳо дар 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 баргардонидааст:
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'-ро чоп мекунад
}
);