anchor.diff:      });
   ----
   
  -`promise = promise.then(...)` という書き方は一見すると、上書きしているようにみえるため、
  -それまでのpromiseのchainが途切れてしまうと思うかもしれません。
  -
  -イメージとしては `promise = addPromiseChain(promise, fn);` のような感じになっていて、
  -既存のpromiseオブジェクトに対して新たな処理を**追加**したpromiseオブジェクトを作って返すため、
  -自分で逐次的に処理する機構を実装しなくても問題ないわけです。
  +看到 `promise = promise.then(...)` 这种写法，会让人以为`promise`的值会被覆盖，也许你会想是不是promise的chain被截断了。
  +
  +你可以想象为类似 `promise = addPromiseChain(promise, fn);` 这样的感觉，我们队promise对象**增加**了新的处理，并返回了这个对象，因此即使自己不实现顺序处理的话也不会带来什么问题。
   
   === 两者的区别
   
   ==== 同步和异步
   
  -<<fs-method-chain.js>>と<<fs-promise-chain.js,Promise版>>の違いを見ていくと、
  -そもそも両者には同期的、非同期的という大きな違いがあります。
  -
  -<<fs-method-chain.js>> のようなメソッドチェーンでもキュー等の処理を実装すれば、
  -非同期的なほぼ同様のメソッドチェーンを実装出来ますが、複雑になるため今回は単純な同期的なメソッドチェーンにしました。
  -
  -Promise版は<<promise-is-always-async,コラム: Promiseは常に非同期?>>で紹介したように
  -常に非同期処理となるため、promiseを使ったメソッドチェーンも非同期となっています。
  +要说<<fs-method-chain.js>>和<<fs-promise-chain.js,Promise版>>两者之间的差别，最大的不同那就要算是同步和异步了。
  +
  +如果在类似 <<fs-method-chain.js>> 的方法链中加入队列等处理的话，就可以实现几乎和异步方法链同样的功能，但是实现将会变得非常复杂，所以我们选择了简单的同步方法链。
  +
  +Promise版的话如同在 <<promise-is-always-async,专栏: Promise只能进行异步处理？>>里介绍过的一样，只会进行异步操作，因此使用了promise的方法链也是异步的。
   
   ==== 错误处理
   
  -<<fs-method-chain.js>>にはエラーハンドリングの処理は入っていないですが、
  -同期処理であるため全体を `try-catch` で囲む事で行えます。
  -
  -<<fs-promise-chain.js,Promise版>> では内部で利用するpromiseオブジェクトの
  -`then` と `catch` へのエイリアスを用意してあるため、通常のpromiseと同じように `catch` によってエラーハンドリングが行えます。
  -
  -[source,javascript]
  -.fs-promise-chainでのエラーハンドリング
  +虽然<<fs-method-chain.js>>里面并不包含错误处理的逻辑，
  +但是由于是同步操作，因此可以将整段代码用 `try-catch` 包起来。
  +
  +在 <<fs-promise-chain.js,Promise版>> 提供了指向内部promise对象的`then` 和 `catch` 别名，所以我们可以像其它promise对象一样使用`catch`来进行错误处理。
  +
  +[source,javascript]
  +.fs-promise-chain中的错误处理
   ----
   var File = require("./fs-promise-chain");
   File.read(inputFilePath)
  
positive.code:     });
  ----
  
  <<fs-method-chain.js>>に非同期処理を加えたものを自力で実装する場合、
  エラーハンドリングが大きな問題となるため、非同期処理にしたい時は
  Promiseを使うと比較的簡単に実装できると言えるかもしれません。
  
  === Promise之外的异步处理
  
  このメソッドチェーンと非同期処理を見てNode.jsに慣れている方は http://nodejs.org/api/stream.html[Stream] が思い浮かぶと思います。
  
  http://nodejs.org/api/stream.html[Stream] を使うと、
  `this.lastValue` のような値を保持する必要がなくなる事や大きなファイルの扱いが改善されます。
  また、Promiseを使った例に比べるとより高速に処理できる可能性が高いと思います。
  
  [source,javascript]
  .streamによるread->transform->write
  ----
  readableStream.pipe(transformStream).pipe(writableStream);
  ----
  
  そのため、非同期処理には常にPromiseが最適という訳ではなく、
  目的と状況にあった実装をしていくことを考えていくべきでしょう。
  
  NOTE: Node.jsのStreamはEventをベースにしている技術
  
  Node.jsのStreamについて詳しくは以下を参照して下さい。
  
  * http://jxck.hatenablog.com/entry/20111204/1322966453[Node.js の Stream API で「データの流れ」を扱う方法 - Block Rockin’ Codes]
  * http://www.slideshare.net/shigeki_ohtsu/stream2-kihon[Stream2の基本]
  * http://www.slideshare.net/shigeki_ohtsu/node-v012tng12[Node-v0.12の新機能について]
  
  === Promise wrapper
  
  
negative.code:     .write(outputFilePath);
  ----
  
  `transform` 接收一个方法作为参数，该方法对其输入参数进行处理。在这个例子里，我们对通过read读取的数据在前面加上了 `>>` 字符串。
  
  === 基于Promise的fs方法链
  
  下面我们就在不改变刚才的<<fs-method-chain.js,方法链>>对外接口的前提下，采用Promise对内部实现进行重写。
  
  [source,javascript]
  [[fs-promise-chain.js]]
  