Beloftekettinge in JavaScript

Gestel ons het die volgende belofte:

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

Na die voltooiing van die belofte, vertoon ons die resultaat daarvan in die konsole:

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

Laat ons nou nie die resultaat onmiddellik vertoon nie, maar dit op een of ander manier verander en terugstuur deur return:

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

In hierdie geval kan ons nog 'n then op die resultaat van ons then toepas, en sodoende 'n ketting van metodes skep. Die resultaat van die volgende metode sal wees wat die vorige een deur return teruggestuur het:

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

Sodoende kan 'n ketting van enige lengte gebou word:

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