anchor.diff:  });
   ----
   
  -
  -比べて見ると以下のような違いがあることが分かります。
  -
  -* `done` はpromiseオブジェクトを返さない
  -** つまり、doneの後に `catch` 等のメソッドチェーンはできない
  -* `done` の中で発生したエラーはそのまま外に例外として投げられる
  -** つまり、Promiseによるエラーハンドリングが行われない
  -
  -`done` はpromiseオブジェクトを返していないので、
  -Promise chainの最後におくメソッドというのはわかると思います。
  -
  -また、Promiseには強力なエラーハンドリング機能があると紹介していましたが、
  -`done` の中ではそのエラーハンドリングをワザと突き抜けて例外を出すようになっています。
  -
  -何故このようなPromiseの機能とは相反するメソッドが、多くのライブラリで実装されているかについては
  -次のようなPromiseの失敗例を見ていくと分かるかもしれません。
  +从上面我们可以看出，两者之间有以下不同点。
  +
  +* `done` 并不返回promise对象
  +** 也就是说，在done之后不能使用 `catch` 等方法组成方法链
  +* `done` 中发生的异常会被直接抛给外面
  +** 也就是说，不会进行Promise的错误处理（Error Handling）
  +
  +由于`done` 不会返回promise对象，所以我们不难理解它只能出现在一个方法链的最后。
  +
  +此外，我们已经介绍过了Promise具有强大的错误处理机制，而`done`则会在函数中跳过错误处理，直接抛出异常。
  +
  +为什么很多类库都提供了这个和Promise功能相矛盾的函数呢？看一下下面Promise处理失败的例子，也许我们多少就能理解其中原因了吧。
   
   === 沈黙したエラー
   
  -Promiseには強力なエラーハンドリング機能がありますが、
  -(デバッグツールが上手く働かない場合に)
  -この機能がヒューマンエラーをより複雑なものにしてしまう一面があります。
  -
  -これは、<<then-or-catch,then or catch?>>でも同様の内容が出てきたことを覚えているかもしれません。
  -
  -次のような、promiseオブジェクトを返す関数を考えてみましょう。
  +Promise虽然具备了强大的错误处理机制，但是（调试工具不能顺利运行的时候）这个功能会导致人为错误（human error）更加复杂，这也是它的一个缺点。
  +
  +也许你还记得，我们在 <<then-or-catch,then or catch?>> 中也看到了类似的内容。
  +
  +像下面那样，我们看一个能返回promise对象的函数。
   
   [source,javascript]
   [[json-promise.js]]
  
positive.code: [[promise-done]]
  == 什么是 Promise.prototype.done ？
  
  既存のPromise実装ライブラリを利用したことがある人は、
  `then` の代わりに使う `done` というメソッドを見たことがあるかもしれません。
  
  それらのライブラリでは `Promise.prototype.done` というような実装が存在し、
  使い方は `then` と同じですが、promiseオブジェクトを返さないようになっています。
  
  `Promise.prototype.done` は、<<es6-promises,ES6 Promises>>や<<promises-aplus,Promises/A+>>の仕様には
  存在していない記述ですが、多くのライブラリが実装しています。
  
  このセクションでは、`Promise.prototype.done` とは何か?
  また何故このようなメソッドが多くのライブラリで実装されているかについて学んでいきましょう。
  
  === doneを使ったコード例
  
  実際にdoneを使ったコードを見てみると `done` の挙動が分かりやすいと思います。
  
  [role="executable"]
  [source,javascript]
  
negative.code: .promise-done-example.js
  ----
  include::embed/embed-promise-done-example.js[]
  // => 请打开浏览器的开发者工具中的控制台窗口看一下
  ----
  
  在前面我们已经说过，promise设计规格并没有对 `Promise.prototype.done`做出任何规定，因此在使用的时候，你可以使用已有类库提供的实现，也可以自己去实现。
  
  我们会在后面讲述如何去自己实现，首先我们这里先对使用 `then` 和使用 `done`这两种方式进行一下比较。
  
  [role="executable"]
  [source,javascript]
  .使用then的场景
  ----
  var promise = Promise.resolve();
  promise.then(function () {
  