anchor.diff:  .promise-foreach-xhr.js
   ----
   include::embed/embed-promise-foreach-xhr.js[]
  -// 実行例
  +// 运行示例
   main().then(function (value) {
       console.log(value);
   }).catch(function(error){
  
positive.code: });
  ----
  
  forループで書く場合、<<then-return-new-promise,コラム: thenは常に新しいpromiseオブジェクトを返す
  >>や<<promise-and-method-chain,Promiseとメソッドチェーン>>で学んだように、
  <<promise.then, Promise#then>> は新しいpromiseオブジェクトを返しています。
  
  そのため、`promise = promise.then(task).then(pushValue);` というのは `promise` という変数に上書きするというよりは、
  そのpromiseオブジェクトに処理を追加していくような処理になっています。
  
  しかし、この書き方だと一時変数として `promise` が必要で、処理の内容的にもあまりスッキリしません。
  
  このループの書き方は `Array.prototype.reduce` を使うともっとスマートに書くことが出来ます。
  
  === Promise chainとreduce
  
  `Array.prototype.reduce` を使って書き直すと以下のようになります。
  
  [role="executable"]
  [source,javascript]
  
negative.code: .promise-sequence-xhr.js
  ----
  include::embed/embed-promise-sequence-xhr.js[]
  // 运行示例
  main().then(function (value) {
      console.log(value);
  }).catch(function(error){
  