Проблема в том, что когда this.getPost ())) возвращает ошибку, например, 404 (это функция, которая возвращает GET), тогда код this.loggedChange.emit(false)
не выполняется, и я не знаю почему.После этой ситуации у меня неправильный вывод loggedChangedHandler.Это похоже на внутреннюю ошибку, после swtichMap this.loggedChange не «наблюдает».До switchMap он наблюдал, так что я думаю, что это может быть подсказкой, но я не знаю, почему это работает так.Если первая функция возвращает ошибку (this.authLogin - она также возвращается get), то this.loggedChange.emit работает нормально.
дочерний компонент:
login(): void {
this.authLogin(this.email, this.password)
.pipe(
tap(() => this.loggedChange.emit(true)),
switchMap(() => this.getPost())
)
.subscribe(
resp => {
//some code here
},
error => {
this.loggedChange.emit(false);
}
);
}
в родительском компоненте у меня есть что-то вроде этого:
<login-component (loggedChange)="loggedChangeHandler($event)"></login-component>
и в ts
loggedIn$ = new BehaviorSubject(false);
loggedChangedHandler(el: boolean): any {
this.loggedIn$.next(el);
}