Rxjs 将可观察值中的值分配给全局变量

had*_*des 5 asynchronous observable rxjs angular

抱歉,我是角度和异步编程的新手,我正在尝试将 rxjs 可观察到的值分配给全局变量,如下所示:

public currentUser: User;

this.userService.getAuthUser().subscribe(user => {
  this.currentUser = user;
});
console.log(this.currentUser.name);
Run Code Online (Sandbox Code Playgroud)

我知道 rxjs observable 是异步的,因此值将位于undefined最后一行console.log(...)。有什么方法可以将可观察变量的值分配给全局变量吗?比如等待getAuthUser()异步方法完成然后将其分配给全局变量。

Bal*_*han 5

尝试下面的代码,这将仅user在数据可用时将值分配给:

public currentUser: User;

this.userService.getAuthUser().subscribe(user => {
   this.currentUser = user;
   console.log(this.currentUser.name);
});
Run Code Online (Sandbox Code Playgroud)