anchor.diff:  });
   ----
   
  -`main` 以外の処理はforループのものと同様です。
  +这段代码中除了 `main` 函数之外的其他处理都和使用for循环的时候相同。
   
  -`Array.prototype.reduce` は第二引数に初期値を入れることができます。
  -つまりこの場合、最初の `promise` には `Promise.resolve()` が入り、
  -そのときの `task` は `request.comment` となります。
  +`Array.prototype.reduce` 的第二个参数用来设置盛放计算结果的初始值。在这个例子中， `Promise.resolve()` 会赋值给 `promise` ，此时的 `task` 为 `request.comment` 。
   
  -reduceの中で `return` したものが、次のループで `promise` に入ります。
  -つまり、`then` を使って作成した新たなpromiseオブジェクトを返すことで、
  -forループの場合と同じように<<promise-chain, Promise chain>>を繋げることが出来ます。
  +在reduce中第一个参数中被 `return` 的值，则会被赋值为下次循环时的 `promise` 。也就是说，通过返回由 `then` 创建的新的promise对象，就实现了和for循环类似的 <<promise-chain, Promise chain>> 了。
   
   [NOTE]
   =====
  -`Array.prototype.reduce` については詳しくは以下を参照して下さい。
  +下面是关于 `Array.prototype.reduce` 的详细说明。
   
   * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce[Array.prototype.reduce() - JavaScript | MDN]
   * http://glide.so/azu/6919649[azu / Array.prototype.reduce Dance - Glide]
   =====
   
  -forループと異なる点は、一時変数としての `promise` が不要になることに伴い、
  -`promise = promise.then(task).then(pushValue);` という不格好な書き方がなくなる点が大きな違いだと思います。
  +使用reduce和for循环不同的地方是reduce不再需要临时变量 `promise` 了，因此也不用编写 `promise = promise.then(task).then(pushValue);` 这样冗长的代码了，这是非常大的进步。
   
  -`Array.prototype.reduce` とPromiseの逐次処理は相性が良いので覚えておくといいのですが、
  -初めて見た時にどういう動作をするのかがまだ分かりにくいという問題があります。
  +虽然 `Array.prototype.reduce` 非常适合用来在Promise中进行顺序处理，但是上面的代码有可能让人难以理解它是如何工作的。
   
  -そこで、処理するTaskとなる関数の配列を受け取って逐次処理を行う
  -`sequenceTasks` というものを作ってみます。
  +因此我们再来编写一个名为 `sequenceTasks` 的函数，它接收一个数组作为参数，数组里面存放的是要进行的处理Task。
   
  -以下のように書くことができれば、`tasks` が順番に処理されていく事が関数名から見てわかるようになります。
  +从下面的调用代码中我们可以非常容易的从其函数名想到，该函数的功能是对 `tasks` 中的处理进行顺序执行了。
   
   [source,javascript]
   ----
  
positive.code: .promise-foreach-xhr.js
  ----
  include::embed/embed-promise-foreach-xhr.js[]
  // 実行例
  main().then(function (value) {
      console.log(value);
  }).catch(function(error){
  
negative.code: });
  ----
  
  使用这种写法的话那么随着 `request` 中元素数量的增加，我们也需要不断增加对 `then` 方法的调用
  
  因此，如果我们将处理内容统一放到数组里，再配合for循环进行处理的话，那么处理内容的增加将不会再带来什么问题。首先我们就使用for循环来完成和前面同样的处理。
  
  [role="executable"]
  [source,javascript]
  