JavaScript-də Promise Zəncirləri

Tutaq ki, bizim aşağıdakı promise-miz var:

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

Promise bitdikdə onun nəticəsini konsola çıxaraq:

javascriptpromise.then(
  function(result) {
    console.log(result); // 'string' çıxardacaq
  }
)

Gəlin indi nəticəni dərhal çıxarmayaq, onu bir şəkildə dəyişdirək və return ilə qaytaraq:

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

Bu halda biz öz then-imizin nəticəsinə başqa bir then tətbiq edə bilərik, beləliklə zəncir metodu yaradırıq. Bununla növbəti metodun nəticəsinə əvvəlkinin return ilə qaytardığı daxil olacaq:

javascriptpromise.then(
  function(result) {
    return result + '!';
  }
).then(
  function(result) {
    console.log(result); // 'string!' çıxardacaq
  }
);

Beləliklə, istənilən uzunluqda zəncir qura bilərsiniz:

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' çıxardacaq
  }
);