title: Angular change detection only triggering once on consecutive Ngrx-store updates
body: <p>In the following scenario, Angular change detection is not triggering in the way I would expect it to. I am using ngrx-store to hold my application state.</p>
  
  <ol>
  <li>Initially, I have state S1.</li>
  <li>I trigger an action A1. A reducer listening for A1 updates the state to S2. An effect triggers action A2.</li>
  <li>A reducer listening for A2 updates the state back to S1.</li>
  </ol>
  
  <p>In the above situation, there are two state updates (S1 -> S2 -> S1). However, at the end of this series of actions, my components OnChange is only triggering once (S1 -> S1). I am using a standard Observable with async pipe and child component with @Input.</p>
  
  <pre><code>@Component({
      selector: 'app-parent-component',
      template: `&lt;app-time-entry [timeEntry]="timeEntry$ | async"&gt;&lt;/app-time-entry&gt;`
  })
  export class ParentComponent {
      timeEntry$: Observable&lt;TimeEntryRow&gt;;
  
      constructor(private store: Store&lt;AppState&gt;) {
          this.timeEntry$ = this.store.select(state =&gt; state.time.timeEntry);
      }
  }
  
  @Component({
      selector: 'app-time-entry',
      template: `{{timeEntry.hours}}`
  })
  export class TimeEntryComponent {
      @Input() timeEntry: TimeEntry;
  }
  </code></pre>
  
  <p>Why is the change detection only happening once in this case? I have verified that my state is properly updating between each action, so why are the bindings only updated once? I would expect the async pipe to pass along the changed state twice, thus triggering the child components OnChange twice as well.</p>
  
  <h1>Update</h1>
  
  <p>As suggested by Kevin below, adding a delay into the effect causes both OnChanges to trigger as expected. This would suggest that the Angular "tick" is happening after both state updates have finished.</p>