对角度编程和异步编程感到很抱歉,我正在尝试将rxjs中可观察到的值分配给全局变量,如下所示:
public currentUser: User;
this.userService.getAuthUser().subscribe(user => {
this.currentUser = user;
});
console.log(this.currentUser.name);
我知道rxjs可观察到的是异步的,因此最后一行undefined
的值将是console.log(...)
。有什么方法可以将值从可观察值赋给全局变量?等待getAuthUser()
异步方法完成,然后将其分配给全局变量。
答案 0 :(得分:3)
尝试下面的代码,仅在有数据时,才会将值分配给user
:
public currentUser: User;
this.userService.getAuthUser().subscribe(user => {
this.currentUser = user;
console.log(this.currentUser.name);
});