所以我想从订阅中返回一个值:
export class UserHomePage implements OnInit {
uid: string;
...
constructor(
private afAuth: AngularFireAuth,
private afs: AngularFireStore,
...
) {}
getAuth() {
return this.afAuth.authState.subscribe(auth => { <= // It's ok
this.uid = auth.uid;
console.log('ID : ' + this.uid);
});
}
我尝试在其他函数中使用“ this.uid”,但数据为“未定义”:
example() { <= // Problem !
console.log(this.uid);
}
我只是在这个论坛here上找到了另一个主题,但我不明白这种可观察的方式。
您能告诉我如何为下一个函数返回此数据。
谢谢(对不起我的英语)!
答案 0 :(得分:0)
我的最佳猜测是,这里的问题是可观察值是异步的,因此,如果在您对this.uid
的订阅返回任何值之前触发了undefined
,则example()
返回this.afAuth.authState
。
最简单的操作是从订阅本身调用example()
。这样的事情应该起作用:
getAuth() {
this.afAuth.authState.subscribe(auth => {
this.uid = auth.uid;
this.example();
});
}