title: combineLatest doesn't emit latest value
body: <p>I'm having difficulty wrapping my head around why <code>combineLatest</code> isn't returning the latest value.  This example is a bit contrived but at least it illustrates my problem.  Notice the value of <code>color</code> from the <code>combineLatest</code> observable returns a previous value, when the <code>subject.value</code> is correct. It's like the <code>color$</code> observable hasn't emitted.</p>
  
  <pre><code>import { map, distinctUntilChanged, combineLatest } from 'rxjs/operators'
  import { Observable } from 'rxjs/observable';
  import { BehaviorSubject } from 'rxjs/BehaviorSubject';
  
  const main$ = new BehaviorSubject({color: 'red'});
  
  const color$ = main$.pipe(
    map(state =&gt; state.color),
  )
  
  main$.pipe(
    combineLatest(color$)
  )
  .subscribe(([state, color]) =&gt; {
    console.log(state, color, main$.value.color);
  })
  
  main$.next({
      color: 'yellow'
  });
  </code></pre>
  
  <p><strong>Actual Output</strong></p>
  
  <pre><code>{color: "red"} "red" "red"
  
  {color: "yellow"} "red" "yellow"
  
  {color: "yellow"} "yellow" "yellow"
  </code></pre>
  
  <p><strong>Expected Output</strong></p>
  
  <pre><code>{color: "red"} "red" "red"
  
  {color: "yellow"} "yellow" "yellow"  // Notice middle value is yellow
  
  {color: "yellow"} "yellow" "yellow"
  </code></pre>
  
  <p><a href="https://stackblitz.com/edit/combine-latest-issue" rel="noreferrer">https://stackblitz.com/edit/combine-latest-issue</a></p>
  
  <p>If someone could help explain whats going, and provide a workaround or proper way to think about this in <code>rxjs</code> I would appreciate it.</p>