title: Observables with ngrx/store - race conditions
body: <p>I have a problem that I believe is due to a combination of my initial state in ngrx-store and trying to get just the initial response from an observable.  I'm using datatables, and large amounts of data for a static report - so I just want the first "real" response from: </p>
  
  <p><code>Observable.zip(this.sites$, this.devices$, this.machines$, this.machineContent$)</code></p>
  
  <p>In my ngrx reducer I have the initial state defined as [] for each of these.  However, at times there is (what I think is a race condition) where one of those observables will be returned as [], but the Observable.zip resolves, and it incorrectly renders my table at that point.</p>
  
  <p>I've tried various combinations of:</p>
  
  <p><code>Observable.zip(this.sites$.skip(1), this.devices$.skip(1), this.machines$.skip(1), this.machineContent$.skip(1))</code></p>
  
  <p>and
  <code>Observable.zip(this.sites$.skip(1), this.devices$.skip(1), this.machines$.skip(1), this.machineContent$.skip(1))
  .take(1)</code></p>
  
  <p>And these work about 80% of the time.
  I also have an observable of 'isLoaded' for each of those observables (machinesIsLoaded, machineContentIsLoaded, etc.) which I thought about using with <code>.takeUntil</code>, except that I'd have to check for each of these to return <code>true</code>, and it feels like I must be doing something wrong.</p>
  
  <p>Any ideas?</p>