anchor.diff:      logs it to the console, and returns the message in a new, failed observable via `Observable.throw`.
   
       `catch`操作符将错误对象传递给`http`的`handleError`方法。
  -    服务处理器(`handleError`)把响应对象记录到控制台中，
  +    服务处理器 (`handleError`) 把响应对象记录到控制台中，
       把错误转换成对用户友好的消息，并且通过`Observable.throw`来把这个消息放进一个新的、用于表示“失败”的可观察对象。
   
   +makeExample('server-communication/ts/app/toh/hero.service.ts', 'error-handling', 'app/toh/hero.service.ts (excerpt)')(format=".")
  
positive.code: :marked
    You can revise that `HeroService` to get the heroes from the server using the !{_Angular_Http} client service:
  
    在本章中，我们会修改`HeroService`，改用“!{_Angular_Http}客户端”服务来从服务器上获取英雄列表：
  +makeExample('server-communication/ts/app/toh/hero.service.ts', 'v1', 'app/toh/hero.service.ts (revised)')
  
  :marked
    Notice that the !{_Angular_Http} client service is
    [injected](dependency-injection.html) into the `HeroService` constructor.
  
    注意，这个“!{_Angular_Http}客户端”服务[被注入](dependency-injection.html)到了`HeroService`的构造函数中。
  +makeExample('server-communication/ts/app/toh/hero.service.ts', 'ctor')
  :marked
    Look closely at how to call `!{_priv}http.get`:
  
negative.code:     There is nothing remarkable here _except_ for the import of RxJS operators, which is
      described [later](#rxjs).
  
      这里唯一值得注意的是对 RxJS 操作符的导入，[后面](#rxjs)有详细介绍。
    +makeExample('server-communication/ts/app/app.component.ts', 'import-rxjs')(format='.')
  
  .l-main-section#http-providers
  :marked
    # Providing HTTP services
  
    # 提供 HTTP 服务
  
    First, configure the application to use server communication facilities.
  
    首先，配置应用来使用服务器通讯设施。
  
    The !{_Angular_Http} client communicates with the server using a familiar HTTP request/response protocol.
    The `!{_Http}` client is one of a family of services in the !{_Angular_http_library}.
  
    我们通过 !{_Angular_Http}客户端，使用熟悉的 HTTP 请求/回应协议与服务器通讯。
    `!{_Http}`客户端是!{_Angular_http_libraryCn}所提供的一系列服务之一。
  
  +ifDocsFor('ts')
    .l-sub-section
  