title: Infinite loop with store and http with ngFor
body: <p>I have infinite loop with this code:
  Template:</p>
  
  <pre><code>&lt;ng-container *ngFor="let row of service.dataLoadAsync() | async"&gt;
  </code></pre>
  
  <p>Service:</p>
  
  <pre><code>dataLoadAsync(filters: FinishedCallsFilter = {}): Observable&lt;FinishedCall[]&gt; {
      return this.httpFinishedCallsObservable(Object.assign({limit: this.limit}, {})).flatMap(response =&gt; {
          this.store.dispatch(new ReplaceMany(response.items))
          return this.store
      })
  }
  </code></pre>
  
  <p>Also I tried this function realization:</p>
  
  <pre><code>dataLoadAsync(filters: FinishedCallsFilter = {}): Observable&lt;FinishedCall[]&gt; {
     this.httpFinishedCallsObservable(Object.assign({limit: this.limit}, {}))
          .subscribe(response =&gt; this.store.dispatch(new ReplaceMany(response.items)))
      return this.store
  }
  
  private httpFinishedCallsObservable(params: { limit: number, tag ?: string }) {
      return this.http.post(this.apiUrl, params)
          .map((json) =&gt; this.parseHttp(json))
          .do(response =&gt; this.tagStore.dispatch(new UpdateTag(response.tag)))
  }
  </code></pre>
  
  <p>So, the problem. Without http request, evferything is fine. But then I try to download data and update store, <code>dataLoadAsync</code> function calls a lot of times in loop.
  How to fix the code? I want to use store for cache</p>