无法从订阅中检索数据

Failing to retrieve data from subscribe

我正在尝试从订阅的项目中检索数据,但它不会更改 currentMemberDetail: Member 对象,它仍未定义。

public currentMemberDetail: Member;

constructor(public authService: AuthService,
    public memberService: MemberService,
    private route: ActivatedRoute,
    private router: Router) {

    this.memberService.getOne(this.authService.currentUser)
        .subscribe(m => {this.currentMemberDetail = m; console.log(m)});
}

ngOnInit(): void {

    this.memberService.getOne(this.authService.currentUser)
        .subscribe(m => {this.currentMemberDetail = m; console.log(m)});

    console.log(this.currentMemberDetail);

}

这是我从控制台日志中得到的

成员{_id:“5a44bdb416ff3e115c0d732a”,伪:"admin",密码:"admin",个人资料:"I'm the administrator of the site!",生日:未定义,...}

m 有对象,但我无法将其解析为 currentMemberDetail,它仍未定义。

我试过 ngOnInit 和构造函数内部。

有什么解决办法吗?非常感谢!

当你打电话时

console.log(this.currentMemberDetail);

不在订阅范围内。因为 .getOne 是异步的,上面的行在它被设置之前被记录下来

如果您将订阅更改为:

.subscribe(m => {this.currentMemberDetail = m; console.log(this.currentMemberDetail)});

您应该会看到它已设置。