У меня очень уникальная проблема.
Я создал тему поведения в своей службе
@Injectable({
providedIn: 'root'
})
export class AuthService {
baseUrl = `${environment.url}`;
private appUser: BehaviorSubject<User> = new BehaviorSubject(null);
constructor(private http: HttpClient) {
}
setAppUser(user: User) {
this.appUser.next(user);
}
getAppUser() {
return this.appUser.asObservable();
}
Я вызываю эту тему поведения из одного из своих компонентов.
Теперь он работает и не работает при других обстоятельствах.
Он работает, если я подписываюсь на такую тему поведения
export class AppNavComponent implements OnInit {
user: User;
constructor(private router: Router,
private authService: AuthService) { }
ngOnInit(): void {
this.authService.getAppUser()
.subscribe(user => this.user = user)
}
Он не работает, если я хочу выполнить несколько операторов после подписки .
export class AppNavComponent implements OnInit {
user: User;
userCanViewAdmin: boolean = false;
constructor(private router: Router,
private authService: AuthService) { }
ngOnInit(): void {
this.authService.getAppUser()
.subscribe(user => {
this.user= user;
this.userCanViewAdmin= this.authService.getUserPermission(user, 'View Admin Page');
})
}
Я действительно не понимаю, что я здесь делаю неправильно.
Любая помощь будет принята с благодарностью. Спасибо