anchor.diff:    Like `getHeroes`, it also returns a !{_Promise}. 
     But this !{_Promise} waits 2 seconds before resolving the !{_Promise} with mock heroes.
     
  -  像`getHeroes`一样，它也返回一个承诺。
  -  但是，这个承诺会在使用模拟数据完成任务之前等待两秒钟。
  +  像`getHeroes`一样，它也返回一个Promise。
  +  但是，这个Promise会在提供模拟数据之前等待两秒钟。
     
     Back in the `AppComponent`, replace `heroService.getHeroes` with `heroService.getHeroesSlowly`
     and see how the app behaves.
   
     回到`AppComponent`，用`heroService.getHeroesSlowly`替换掉`heroService.getHeroes`，并观察本应用的行为。
  -  
  
positive.code:   When we do, we'll have to wait for the server to respond and we won't be able to block the UI while we wait, 
    even if we want to (which we shouldn't) because the browser won't block.
    
    那时候，我们不得不等待服务器返回，并且在等待时，我们没法停止UI响应，即使我们想这么做，也做不到，因为浏览器不会停止。
    
    We'll have to use some kind of asynchronous technique and that will change the signature of our `getHeroes` method.
    
  
negative.code:   Because data services are invariably asynchronous, 
    we'll finish the chapter with a **!{_Promise}**-based version of the data service.
  
    因为数据服务通常都是异步的，我们将在本章创建一个基于**Promise**的数据服务。
  
    Run the <live-example></live-example> for this part.
  
  