anchor.diff:  
   Promisesは処理のフローを制御する力に優れているため、それを
   最大限活かすためには一つの関数でやり過ぎないで処理を小さく分けること等、今までの
  -JavaScriptで言われているような事をより意識していいのかもしれません。+JavaScriptで言われているような事をより意識していいのかもしれません。
  
positive.code: .. `throw TimeoutError`されるので`catch`する
  .. catchしたエラーオブジェクトが`TimeoutError`のものだったら`abort`を呼び出してXHRをキャンセルする
  
  これらの要素を全てまとめると以下のようになります。
  
  [source,js]
  [[delay-race-cancel-play.js]]
  
negative.code: 
  ここまでくれば、どのようにPromiseを使ったXHRのキャンセルを実装するか見えてくるかもしれません。
  
  XHRのキャンセル自体は`XMLHttpRequest`オブジェクトの `abort()` メソッドを呼ぶだけなので難しくないですね。
  
  `abort()` メソッドを外から呼べるようにするために、今までのセクションにもでてきた<<xhr-promise.js,`getURL`>>を少し拡張して、
  XHRを包んだpromiseオブジェクトと共にそのXHRを中止するメソッドを持つオブジェクトを返すようにしています。
  