从回调中创建一个Observable [英] Making an Observable from a callback

查看:156
本文介绍了从回调中创建一个Observable的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个身份验证后台,当站点被访问并且用户已经登录时,需要异步响应true / false。



我使用的是Firebase的 onAuthStateChanged 链接到文档),它使用回调函数。如何将我的 isLoggedIn()方法转换为可以返回 Observable< boolean>



注解:

  get isLoggedIn():Observable< boolean> {

//想要类似这样的内容:
return Observable.fromCallback(firebase.auth()。onAuthStateChanged).map(user => !! user);

// this returns()=>布尔值,但是我需要一个承诺或可观察
返回firebase
.auth()
.onAuthStateChanged((user)=> {
return !! user;
});



解决方案

这样做。

  get isLoggedIn():Observable< boolean> {

//想要这样的东西:
return Observable.create(observer => {
firebase
.auth()
.onAuthStateChanged (用户)=> {
observer.next(!!用户)
});
}

}


I have an auth guard that needs an asynchronous response true/false when the site is visited and the user is already logged in.

I'm using Firebase's onAuthStateChanged (link to docs) and it uses a callback function. How can I turn my isLoggedIn() method into something that can return Observable<boolean>?

Typscript:

get isLoggedIn(): Observable<boolean> {

    // want something like this:
    return Observable.fromCallback(firebase.auth().onAuthStateChanged).map(user => !!user);

    // this returns () => boolean, but I need a promise or observable
    return firebase
      .auth()
      .onAuthStateChanged((user) => {
        return !!user;
      });

}

解决方案

You can do it like this.

get isLoggedIn(): Observable<boolean> {

// want something like this:
  return Observable.create(observer =>{
    firebase
      .auth()
      .onAuthStateChanged((user) => {
        observer.next(!!user)
       });
  }

}

这篇关于从回调中创建一个Observable的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆