如何监听组件内部的可观察变化

时间:2016-12-17 06:32:55

标签: angular rxjs observable

现在我有一个间隔,检查我的观察是否每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");
     });

1 个答案:

答案 0 :(得分:1)

如果 checkReady()返回一个Observable,您可以订阅它以获得更改。

this.checkReady()
  .subscribe(result => {
    if (result === true) {
      console.log("Ready");
    } else {
      console.log("Still not ready");
    }
  }, (error) => {

  });