Angular: 对象在订阅后可能为空

Angular: Object possibly null after subscribing to it

loadUserInfo() 正在返回一个 UserModel 类型的 Observable。我希望 this.user 也可以在其他功能中访问。现在,如果我尝试在订阅之外访问它,它会说它为空。与尝试在 HTML

中访问它相同
  ngOnInit(){
     this.subscriptions.add(this.loadUserInfo().subscribe((user: UserModel) => {
           this.user = user;
      }));
  }
  someOtherFunc(){
     console.log(this.user) //Does not work here
  }

由于Observable/subscribe操作是异步操作,只有在异步操作完成后才能访问this.user。我在下面的代码中添加了 this.someOtherFunc() 函数调用。

 ngOnInit(){
     this.subscriptions.add(this.loadUserInfo().subscribe((user: UserModel) => {
           this.user = user;
           this.someOtherFunc(); // call function here
      }));
  }
  someOtherFunc(){
     console.log(this.user) 
  }

请参阅网页的这一部分:https://angular.io/tutorial/toh-pt4#observable-heroservice. Also see this answer: