JavaScript да промислар занжири

Фарз қилайлик, бизда куйидаги промис бор:

javascriptlet promise = new Promise(function(resolve, reject) {
  setTimeout(function() {
    resolve('string');
  }, 3000);
});

Промис тугаганида унинг натижасини консольга чиқарамиз:

javascriptpromise.then(
  function(result) {
    console.log(result); // чиқаради 'string'
  }
)

Энди натижани дарҳол чиқармасдан, уни ўзгартириб, return орқали қайтарамиз:

javascriptpromise.then(
  function(result) {
    return result + '!';
  }
);

Бунда холда биз then натижасига яна бир then ни қўллаш орқали занжир яратишимиз мумкин. Бунда кейинги методга олдинги return орқали қайтарган нарса тушadi:

javascriptpromise.then(
  function(result) {
    return result + '!';
  }
).then(
  function(result) {
    console.log(result); // чиқаради 'string!'
  }
);

Шу тарзда исталган узунликдаги занжирни куриш мумкин:

javascriptpromise.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'
  }
);