Promise ahelad JavaScriptis

Oletame, et meil on järgmine promise:

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

Pärast promise lõppemist kuvame selle tulemi konsooli:

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

Ärgem nüüd kohe tulemit väljastagem, vaid muudame seda kuidagi ja tagastame läbi return:

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

Sel juhul saame oma then tulemile rakendada veel ühe then, luues sellega ahela meetodeid. Samal ajal järgmise meetodi tulemusse satub see, mida eelmine tagastas läbi return:

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

Sel viisil saab ehitada mis tahes pikkusega ahela:

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); // kuvab 'string123'
  }
);