anchor.diff:  * Promisification
   * 统一接口的重用
   
  -<<es6-promises,ES6 Promises>>はCoreとなる機能しか用意されていません。
  -そのため、自分でPromiseを使った既存の機能のラッパー的な実装をする事があるかもしれません。
  -
  -しかし、何度もコールバックを呼ぶEventのような処理がPromiseには不向きなように、
  -Promiseが常に最適な非同期処理という訳ではありません。
  -
  -その機能にPromiseを使うのが最適なのかを考える事はこの書籍の目的でもあるため、
  -何でもPromiseにするというわけではなく、その目的にPromiseが合うのかどうかを考えてみるのもいいと思います。
  +<<es6-promises,ES6 Promises>>只提供了一些Core级别的功能。
  +因此，我们也许需要对现有的方法用Promise方式重新包装一下。
  +
  +但是，类似Event等调用次数没有限制的回调函数等在并不适合使用Promise，Promise也不能说什么时候都是最好的选择。
  +
  +至于什么情况下应该使用Promise，什么时候不该使用Promise，并不是本书要讨论的目的，
  +我们需要牢记的是不要什么都用Promise去实现，我想最好根据自己的具体目的和情况，来考虑是应该使用Promise还是其它方法。
  
positive.code: 
  ==== Array的Promise wrapper
  
  先ほどの 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]]
  
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]
  ----
  