title: Using effects and exhaustMap not working as expected for login button
body: <p>I have a login button where when the user clicks, an action is fired to the store. The action has an effect that makes an http call that then validates the user. </p>
  
  <p>This doesn't seem to work in my app, however. I have a spinner that loads for one second (i.e. debounceTime(1000)) when a login call is triggered. When I test by clicking the login button multiple times, the login call seems to be refreshed thus causing the spinner duration to refresh. The expected behaviour is to have the user click the login button and if there are any calls made before the observable is returned from the first call all the interim ones should be cancelled.</p>
  
  <p><strong>app.effects.ts</strong></p>
  
  <pre><code>@Effect()
    authenticateLogin$ = this.action$.pipe(
      ofType(AppActionTypes.SetAuthInfo),
      debounceTime(1000),
      exhaustMap((action: SetAuthInfo) =&gt; {
        const payload = action.payload;
        return this.authService
          .login(payload.username, payload.password)
          .pipe(
            map(response =&gt; {
              this.router.navigate(['/dashboard']);
              return new SetAuthInfoSuccess(response);
            }),
            catchError(error =&gt; {
              return of(new SetAuthInfoError(error));
            })
          )
  </code></pre>
  
  <p>Is my understanding of exhaustMap incorrect? Or am I missing something else?</p>
  
  <p>Thanks in advance!</p>