title: how to wait for angular2 http request data async
body: <p>I have three component, one service.
  Three component depends on a public data, which is get from remote server by angular/http (or httpClient module in angular4) module.
  The public data, let me define it as <strong>DATA</strong>, is immutable, and big, like a model data, so the service just need to request once and store as a member data for components use.</p>
  
  <p>But the question is, the http get is async, I cann't guarantee the <strong>DATA</strong>'s construction is over when angular service's constructor finished, or when <strong>DATA</strong> needs to be used in any component's <strong>ngInit()</strong>.</p>
  
  <p>How to deal with that? If use lazy load move http.get into every component's <strong>ngInit()</strong> function, the 3 pages is opened with random order, I have to check whether <strong>DATA</strong> is constructed in all 3 component, I think it's stupid.  </p>