title: Zip isn't emitting values after the first values from both observables have been emitted
body: <p>I'm trying to combine two observables, one of em being route params and the other one a custom one. </p>
  
  <p>I'm using <code>zip</code> because <code>forkJoin</code> doesn't seem to work. But the zip is acting strange, cuz when I emit my custom one I don't get that value. I only get the first null value which has been given to my <code>BehaviorSubject</code> as a default emit value.</p>
  
  <p>I read this </p>
  
  <blockquote>
    <p>"The zip operator will subscribe to all inner observables, waiting for
    each to emit a value. Once this occurs, all values with the
    corresponding index will be emitted. This will continue until at least
    one inner observable completes."</p>
  </blockquote>
  
  <p>Does that mean that it won't respond until both of the observables emit a value? Because the route params observable will only emit once, but the <code>dataEmitter</code> will continue to emit values. What would be the correct operator to use in this case?</p>
  
  <p>Here's some of my code:</p>
  
  <p>Emitter in my service:</p>
  
  <pre><code>private dataEmitter: BehaviorSubject&lt;any&gt; = new BehaviorSubject&lt;any&gt;(null);
  </code></pre>
  
  <p>Component subscription, only get <code>null</code> from the <code>dataEmitter</code>, never <code>this.calculatedData</code>:</p>
  
  <pre><code>Observable.zip(this.route.params, this.dataCalculator.dataEmitter$)
    .subscribe(data =&gt; console.log(data));
  </code></pre>
  
  <p>This is called when all of the calculations have been done:</p>
  
  <pre><code>this.dataEmitter.next(this.calculatedData);
  </code></pre>