从回调中创建一个Observable [英] Making an Observable from a callback
本文介绍了从回调中创建一个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屋!
查看全文