首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何返回可观测到的角4?

如何返回可观测到的角4?
EN

Stack Overflow用户
提问于 2017-09-12 04:54:08
回答 5查看 16.7K关注 0票数 3

我在authProvider提供程序类中有这样的方法:

代码语言:javascript
复制
getUser() {
    return this.afAuth.authState.subscribe(user => {
        return user;
    });
}

我想在一个不同的班级订阅它,比如:

代码语言:javascript
复制
this.authProvider.getUser().subscribe(user => console.log(user));

知道如何在Observable方法中返回getUser()吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2017-09-12 04:58:50

你的authState已经可以观察到了。只需返回您的authState并在另一个函数中订阅即可。在函数中,任何其他工作都可以使用RxJS#map函数。

代码语言:javascript
复制
getUser() : Observable {
    return this.afAuth.authState.map(...);
}

....

login() {
   getUser().subscribe(user => {
       return user;
   });
}
票数 8
EN

Stack Overflow用户

发布于 2017-09-12 04:56:20

不要在getUser函数中订阅。把强迫性的东西还回去。

代码语言:javascript
复制
getUser() {
    return this.afAuth.authState
}
票数 3
EN

Stack Overflow用户

发布于 2017-09-12 05:13:25

你可以做这样的事。然后在您的组件中,调用此函数的组件中,您可以订阅这个可观察到的函数。

代码语言:javascript
复制
getUser(): Observable<any> {
    return Observable.create( (observer: Observer<string>) => {
     this.afAuth.authState.subscribe(user => {
        observer.next(user);
    }, (err) => observer.error("error"));
}); 
}

阿什利

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46168165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档