2016-12-17 11 views
0

今私は観測値が1秒ごとに変化するかどうかを調べる間隔を持っています。私はこれが最も効率的な方法ではないことを知っていますが、状態変化をリッスンする方法と、コンポーネント内で直接機能を実行する方法を理解することはできません。コンポーネント内で観測可能な変化を聴く方法

UPDATE 1:ここで私は今持っている私の間隔で は、私は今、購読使用していますが、これはまだ私のために働いていません。すでに購読されているオブザーバブルから観測可能な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

checkReady(IF)は、変更を取得するために、それを購読することができ観測を返しています。

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

    }); 
+0

これを試していますが、何らかの理由でこれが動作しない場合は、コードを更新します –

関連する問題