无法从订阅中检索数据

时间:2018-01-13 15:16:55

标签: angular rxjs mean angular5

我正在尝试从订阅的项目中检索数据,但它不会更改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”,个人资料:“我是该网站的管理员!”,生日:未定义,...}

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

我在构造函数中尝试了ngOnInit。

任何解决方案?非常感谢!

1 个答案:

答案 0 :(得分:1)

致电时

_inotify.py

它在订阅之外。因为console.log(this.currentMemberDetail); 是异步的,所以上面的行在设置之前就会被记录

如果您将订阅更改为:

.getOne

你应该看到它已被设置。