我在authProvider提供程序类中有这样的方法:
getUser() {
return this.afAuth.authState.subscribe(user => {
return user;
});
}我想在一个不同的班级订阅它,比如:
this.authProvider.getUser().subscribe(user => console.log(user));知道如何在Observable方法中返回getUser()吗?
发布于 2017-09-12 04:58:50
你的authState已经可以观察到了。只需返回您的authState并在另一个函数中订阅即可。在函数中,任何其他工作都可以使用RxJS#map函数。
getUser() : Observable {
return this.afAuth.authState.map(...);
}
....
login() {
getUser().subscribe(user => {
return user;
});
}发布于 2017-09-12 04:56:20
不要在getUser函数中订阅。把强迫性的东西还回去。
getUser() {
return this.afAuth.authState
}发布于 2017-09-12 05:13:25
你可以做这样的事。然后在您的组件中,调用此函数的组件中,您可以订阅这个可观察到的函数。
getUser(): Observable<any> {
return Observable.create( (observer: Observer<string>) => {
this.afAuth.authState.subscribe(user => {
observer.next(user);
}, (err) => observer.error("error"));
});
}阿什利
https://stackoverflow.com/questions/46168165
复制相似问题