次にPromiseを使うが意味がない使い方の例を示すぞ

function foo() {
 Promise.resolve(0)
  .then(function(zero) { return Promise.resolve(1); })
  .then(function(one) { return Promise.resolve(2); })
  .then(function(two) { return Promise.resolve(3); })
  .then(function(three) { return Promise.resolve('end'); })
  .catch(function(e) { console.log(e) });
 console.log('start')
}

動きとしては一緒だ。だけど戻り値が単なる値ではなく
Promiseオブジェクトになったということだ。

これは>>239と全く同じ動きをする。
というよりthenが引数の関数を呼び出すだろ?
その戻り値がPromiseオブジェクト以外なら、
内部でPromise.resolveを実行して
Promiseオブジェクトに変換しているわけだ。