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
}
由于Observablessubscribe操作是异步的,所以你只能访问 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.iotutorialtoh-pt4#observable-heroservice。. 也可以参考这个答案。https:/stackoverflow.coma617544473389828。