anchor.diff:  
   ==== Array的Promise wrapper
   
  -先ほどの https://github.com/petkaantonov/bluebird/blob/master/API.md#promisification[Promisification] が何をやっているのか少しイメージしにくいので、
  -次のようなネイティブ `Array` のPromise版となるメソッドを動的に定義する例を考えてみましょう。
  -
  -JavaScriptにはネイティブにもDOMやString等メソッドチェーンが行える機能が多くあります。
  -`Array` もその一つで、`map` や `filter` 等のメソッドは配列を返すため、メソッドチェーンが利用しやすい機能です
  +前面的 https://github.com/petkaantonov/bluebird/blob/master/API.md#promisification[Promisification] 具体都干了些什么光凭想象恐怕不太容易理解，我们可以通过给原生的 `Array` 增加Promise版的方法为例来进行说明。
  +
  +在JavaScript中原生DOM或String等也提供了很多创建方法链的功能。
  +`Array` 中就有诸如 `map` 和 `filter` 等方法，这些方法会返回一个数组类型，可以用这些方法方便的组建方法链。
   
   [source,javascript]
   [[array-promise-chain.js]]
  
positive.code: * Promisification
  * 统一接口的重用
  
  <<es6-promises,ES6 Promises>>はCoreとなる機能しか用意されていません。
  そのため、自分でPromiseを使った既存の機能のラッパー的な実装をする事があるかもしれません。
  
  しかし、何度もコールバックを呼ぶEventのような処理がPromiseには不向きなように、
  Promiseが常に最適な非同期処理という訳ではありません。
  
  その機能にPromiseを使うのが最適なのかを考える事はこの書籍の目的でもあるため、
  何でもPromiseにするというわけではなく、その目的にPromiseが合うのかどうかを考えてみるのもいいと思います。
  
negative.code: include::src/promise-chain/array-promise-chain.js[]
  ----
  
  原生的 Array 和 `ArrayAsPromise` 在使用时有什么差异呢？我们可以通过对 <<array-promise-chain.js,上面的代码>> 进行测试来了解它们之间的不同点。
  
  [source,javascript]
  [[array-promise-chain-test.js]]
  