现在我有一个间隔,检查我的观察是否每1秒更改一次。我知道这不是最有效的方法,但我无法弄清楚如何监听状态更改并直接在组件中运行函数。这是我现在的间隔时间:
更新1: 我现在正在使用订阅,但这仍然不适合我。我从已订阅的observable发送一个可观察的firebase对象。这是我的问题所在吗?
服务
private ReadyObs;
SetRoom(){
this.Room = this.AngularFire.database.object('/Rooms/ABC1');
this.Room.subscribe(snap => {
if(snap.$value !== null){
this.Ready = this.AngularFire.database.object(`/Rooms/${player.room}/Ready`);
}
}
checkReady(){
return this.ReadyObs;
}
组件
private ReadyObs=this.main.checkReady();
//Always results with still not ready even though its true
this.ReadyObs.subscribe((result) =>{
if(result === true)
console.log("Ready to use");
else
console.log("Still not ready");
});
答案 0 :(得分:1)
如果 checkReady()返回一个Observable,您可以订阅它以获得更改。
this.checkReady()
.subscribe(result => {
if (result === true) {
console.log("Ready");
} else {
console.log("Still not ready");
}
}, (error) => {
});