anchor.diff:  include::test/array-promise-chain-test.js[]
   ----
   
  -`ArrayAsPromise` でもArrayのメソッドを利用できているのが分かります。
  -先ほどと同じように、ネイティブのArrayは同期処理で、`ArrayAsPromise` は非同期処理という違いがあります。
  -
  -`ArrayAsPromise` の実装を見て気づくと思いますが、`Array.prototype` のメソッドを全て実装しています。
  -しかし、`array.indexOf` など `Array.prototype` には配列を返さないものもあるため、全てをメソッドチェーンにするのは不自然なケースがあると思います。
  -
  -ここで大事なのが、同じ値を受けるインターフェースを持っているAPIはこのような手段でPromise版のAPIを自動的に作成できるという点です。
  -このようなAPIの規則性を意識してみるとまた違った使い方が見つかるかもしれません。
  +我们看到，在 `ArrayAsPromise` 中也能使用 Array的方法。而且也和前面的例子类似，原生的Array时同步处理，而 `ArrayAsPromise` 则是异步处理，这也是它们的不同之处。
  +
  +仔细看一下 `ArrayAsPromise` 的实现，也许你已经注意到了， `Array.prototype` 的所有方法都被实现了。
  +但是，`Array.prototype` 中也存在着类似`array.indexOf` 等并不会返回数组类型数据的方法，这些方法如果也要支持方法链的话就有些不自然了。
  +
  +在这里非常重要的一点是，我们可以通过这种方式，为具有接收相同类型数据接口的API动态的创建Promise版的API。
  +如果我们能意识到这种API的规则性的话，那么就可能发现一些新的使用方法。
   
   [NOTE]
   ====
  -先ほどの https://github.com/petkaantonov/bluebird/blob/master/API.md#promisification[Promisification] は
  -Node.jsのCoreモジュールの非同期処理には `function(error,result){}` というように第一引数に `error` が来るというルールを利用して、
  -自動的にPromiseでラップしたメソッドを生成しています
  +前面我们看到的 https://github.com/petkaantonov/bluebird/blob/master/API.md#promisification[Promisification] 方法，借鉴了了 Node.js的Core模块中在进行异步处理时将 `function(error,result){}` 方法的第一个参数设为 `error` 这一规则，自动的创建由Promise包装好的方法。
   ====
   
   === 总结
  
positive.code: * Promisification
  * 统一接口的重用
  
  <<es6-promises,ES6 Promises>>はCoreとなる機能しか用意されていません。
  そのため、自分でPromiseを使った既存の機能のラッパー的な実装をする事があるかもしれません。
  
  しかし、何度もコールバックを呼ぶEventのような処理がPromiseには不向きなように、
  Promiseが常に最適な非同期処理という訳ではありません。
  
  その機能にPromiseを使うのが最適なのかを考える事はこの書籍の目的でもあるため、
  何でもPromiseにするというわけではなく、その目的にPromiseが合うのかどうかを考えてみるのもいいと思います。
  
negative.code: 
  === Promise wrapper
  
  再回到 <<fs-method-chain.js>> 和 <<fs-promise-chain.js,Promise版>>，这两种方法相比较内部实现也非常相近，让人觉得是不是同步版本的代码可以直接就当做异步方式来使用呢？
  
  由于JavaScript可以向对象动态添加方法，所以从理论上来说应该可以从非Promise版自动生成Promise版的代码。（当然静态定义的实现方式容易处理）
  
  尽管 <<es6-promises,ES6 Promises>> 并没有提供此功能，但是著名的第三方Promise实现类库 https://github.com/petkaantonov/bluebird/[bluebird] 等提供了被称为
  https://github.com/petkaantonov/bluebird/blob/master/API.md#promisification[Promisification] 的功能。
  
  如果使用类似这样的类库，那么就可以动态给对象增加promise版的方法。
  
  [source,javascript]
  ----
  