Несколько лет писал код на react, но теперь столкнулся с Angular инъекциями.
Делал простую службу аутентификации:

@Injectable({ providedIn: 'root' })
export class AuthenticationService {
  public currentUserSubject: Subject<User>;
  public token: string = '';
  constructor(private http: HttpClient, private router: Router, private localStorageService: LocalStorageService) {
    this.currentUserSubject = new Subject<User>();
  }
  authorization = (token): string => `${TOKEN_TYPE} ${token}`;
  setLocalUser = (user: User) => {
    if (user && user.access_token) {
      localStorage.setItem(CURRENT_USER, JSON.stringify(user));
      this.currentUserSubject.next(user);
      this.router.navigate(['/']);
    } else {
      localStorage.removeItem(CURRENT_USER);
      this.currentUserSubject.next(null);
      this.router.navigate(['/login']);
    }
  }
  getCurrentUser() {
    return this.http.get<any>(`${environment.apiUrl}/${ROUTES.AUTHENTICATE}`, {
      headers: {
        Authorization: this.authorization(this.token), // TODO USE INTERCEPTORS
      }
    })
      .pipe(
        map((user): any => {
          this.setLocalUser(user);
          return user;
        }),
        catchError(err => {
          this.setLocalUser(null);
          return of(null);
        })
      );
  }
}

Все шло хорошо, пока мне не пришлось подписаться на компонент текущего пользователя службы аутентификации:

@Component({
  selector: 'app-header',
  templateUrl: './header.component.html',
  providers: [AuthenticationService]
})
export class HeaderComponent implements OnInit {
  user: User;
  constructor(private authenticationService: AuthenticationService) {
  }
  ngOnInit(): void {
    this.authenticationService.currentUserSubject.subscribe((user) => {
      this.user = user;
    });
  }
  logout(): void {
    this.authenticationService.logout();
  }
}

Я получал обновления на следующий только один раз после обновления страницы, но

this.currentUserSubject.next(user); 

в службе currentUserSubject был обновлен, пару часов я искал ответы на stackoverflow и medium, безуспешно, и я позвонил своему другу, который несколько лет работал с Angular, он сказал мне, что с помощью этого

providers: [AuthenticationService]

в декораторе создает новый экземпляр службы, и, очевидно, я пытался получить обновление из другого экземпляра службы. Итак, я просто удалил эту строку, и все начинает работать отлично.