anchor.diff:      console.error(error);
   });
   ----
  -<1> サーバはステータスコード500のレスポンスを返す
  -<2> 分かりやすくするため関数 `onRejected` という名前を付けています
  +<1> 服务端返回的状态值为500
  +<2> 为了方便理解函数被命名为 `onRejected` 
   
  +在`getURL` 的处理发生任何异常，或者被明确reject的情况下，
  +和发生异常原因（Error对象）一起 <<promise.catch,`.catch`>> 处理会被调用。
   
  -`getURL` の処理中に何らかの理由で例外が起きた場合、または明示的にrejectされた場合に、
  -その理由(Errorオブジェクト)と共に <<promise.catch,`.catch`>> の処理が呼ばれます。
  -
  -<<promise.catch,`.catch`>>は `promise.then(undefined, onRejected)` のエイリアスであるため、
  -同様の処理は以下のように書くことも出来ます。
  +<<promise.catch,`.catch`>>只是 `promise.then(undefined, onRejected)` 的别名，
  +如下代码可以写同样的处理。
   
   [[catch-as-alias]]
   [source,javascript]
   ----
   getURL(URL).then(onFulfilled, onRejected);// <1>
   ----
  -<1> onFulfilled, onRejected それぞれは先ほどと同じ関数
  +<1> onFulfilled, onRejected 就是和刚才相同的函数
   
  -基本的には、<<promise.catch,`.catch`>>を使いresolveとrejectそれぞれを別々に処理した方がよいと考えられますが、
  -両者の違いについては <<then-or-catch,thenとcatchの違い>> で紹介します。
  +一般说来，使用<<promise.catch,`.catch`>>分别写resolve和reject是比较推荐的写法，
  +这两者的区别会在<<then-or-catch,then和catch的区别>>中做介绍。
   
   ==== 总结
   
   这章简单介绍了以下的内容。
   
  -* 用 `new Promise` 做成promise对象
  +* 用 `new Promise` 创建promise对象
   * 用<<promise.then,`.then`>> 或 <<promise.catch,`.catch`>> 处理promise对象
   
  -到此我们学习了Promise的基本写法。
  -他の多くの処理はこれを発展させたり、用意された静的メソッドを利用したものになります。
  +到此为止我们学习了Promise的基本写法。
  +其他多数处理都是由此延伸，并使用预设的静态方法来实现。
   
  -ここでは、同様の事はコールバック関数を渡す形でも出来るのに対してPromiseで書くメリットについては触れていませんでした。
  -次の章では、Promiseのメリットであるエラーハンドリングの仕組みをコールバックベースの実装と比較しながら見て行きたいと思います。
  +这里我们并没有接触到有关不用能做到同样事情的回调函数而用Promise代替的优点。
  +在接下来的章节中，我们就来看一下作为Promise优点的错误处理组成结构再和回调函数比较一下孰优孰劣。
  
positive.code: 
  我们来介绍一下Promise的基本写法。
  
  === promise对象的做成
  
  做成promise对象的流程如下所示。
  
  . `new Promise(fn)` 返回一个promise对象
  . 在`fn` 中写非同期等处理
  
negative.code: });
  ----
  
   `getURL` 只有在
  通过XHR取得结果状态为200时 `resolve` - 也就是取得成功，
  除此以外就是取得失败 `reject` 。
  
  
  `resolve(req.response)` 在response的内容中加入了参数。
  resolve的参数值并没有特定，和回调函数一样可以通过它传递下个处理的参数值。
  ( `then` 方法可以接收到这个参数值)
  
  熟悉Node.js的人，经常会在写回调函数时将 `callback(error, response)` 的第一个参数传入error对象，而在Promise中resolve/reject担当了这个职责，所以
  在resolve中只加入response的值是没有问题的。
  
  接下来我们来看一下`reject`。
  
  XHR中 `onerror` 事件被触发的时候就是发生错误时所以理所当然被称为`reject`。
  这里我们重点来看一下传入`reject`的值。
  
  发生错误时要像这样 `reject(new Error(req.statusText));` ，创建一个Error对象后再传入。
  传入`reject` 的值并没有特殊的限制，一般只要是Error对象（或者继承自Error对象）就可以将其传入。
  
  传入`reject` 的值，其中一般是包含了reject原因的Error对象。
  本次因为状态值不等于200而reject，所以`reject` 中放入的是statusText。
  （这个值`reject` 方法的第二个参数或者 `catch` 方法中可以取到）
  
  === 向promise对象中写处理
  
  让我们在实际中使用一下刚才创建的返回promise对象的函数
  
  [source,javascript]
  getURL("http://example.com/"); // => 返回promise对象
  
  如<<promises-overview,Promises Overview>> 中做的简单介绍一样promise对象拥有几个实例方法，
  使用它们来创建对应promise对象状态并且只调用一次的回调函数。
  
  创建promise对象的处理只要有以下两种
  
  * promise对象被 **resolve** 时的处理(onFulfilled)
  * promise对象被 **reject** 时的处理(onRejected)
  
  [[promise-value-flow]]
  .promise value flow
  image::img/promise-onFulfilled_onRejected.png[promise-resolve-flow]
  
  首先，我们来尝试写一下`getURL` 通信成功并取到值时的处理。
  
  此时所谓的 _通信成功_ ，
  指的就是被resolve后_promise对象变为FulFilled状态_ 。
  
  被**resolve**后的处理，可以在<<promise.then,`.then`>> 方法中传入想要调用的函数。
  
  [source,javascript]
  ----
  