Я новичок в Angular. если я ошибаюсь, скажи мне, пожалуйста. Я знаю, что если мы хотим наблюдать наблюдаемое, если что-то меняется или нет, мы должны подписаться на него. Но некоторые видео я смотрю, чтобы узнать, иногда мы подписываемся, иногда нет. например;
export class AppComponent {
signedin$: boolean = false;
constructor(private authService: AuthService) {
this.signedin$ = this.authService.signedin$; //this.authService.signedin$ is BehaviorSubject
}
ngOnInit() {
// We subscribe here to watch.
this.authService.signedin$.subscribe((signedin) => {
this.signedin = signedin;
});
}
}
Однако,
export class AuthGuard implements CanLoad {
constructor(private service: AuthService) {
}
canLoad(
route: Route,
segments: UrlSegment[]
): Observable<boolean> | Promise<boolean> | boolean {
// we dont subscribe here?
return this.service.signedin$.pipe(
skipWhile((value) => value === null),
take(1)
);
}
}
Я запутался, почему мы здесь не подписываемся? в чем разница?