JavaScript-da boljak zynjyrlary

Bizde aşakdaky boljak bolsun:

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

Boljak tamamlanyndan soň onuň netijesini konsolýa çykarýarys:

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

Indi netijäni derrew çykarmaly däl, ýöne onu nädurli üýtgedip, return arkaly yzyna gaýtaryň:

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

Bu ýagdaýda biz öz then-ymyzyň netijesine ýene bir then ulanýp, şeýlelik bilen zynjyr usullary döredip bileris. Şol bir wagtyň özünde indiki usula, öňki return arkaly gaýtaran zat düşer:

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

Şeýlelik bilen islenilen uzynlykdaky zynjyr gurup bolýar:

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