2017-06-11 8 views
2

がrxjsに新しいですし、私はこれは私がrxjs機能にブール値を返すこと

私は変更するにはどうすればよい
checkLoggedin():Observable<boolean> { 
    //check from server if user is loggdin 
    if(this._tokenService.getToken()){ //this returns synchronous true or false 

     this._httpservice.checkifloggedin() 
     .subscribe((res)=>{ 
      return res.data //this comes in as true or false value 
       }, 
       err=>{ return false } 
      )  
    }else{ 

     return false //this fails with an error of 
        //type false is not assignable to observable<boolean> 
     } 

} 

を試してみましたが、何である

trueまたはfalseのいずれかの観察可能なを返したいの失敗します他のコンポーネントには、私が唯一の利用 return Observable.of(false)代わりの return false

this._authservice.checkLoggedin() 
    .subscribe.....//here get the value whether true or false 

答えて

2

を行うことができますように、ブール観測可能と連携する他の上の部分。

+0

は、この瞬時に値を返すときに、あなたのHTTPService戻りデータを動作するはずです。 – Oisin

+0

おかげで、それは –

+0

@Oisin、実際には、彼はfalse'をsyncronously '返し詳しく見て動作しますセルゲイ。その後、あなたの代わりに '' observable'のsubscribtion'を返すため –

5

これは、あなたがそれを放出したい、

checkLoggedin():Observable<boolean> { 
    if(this._tokenService.getToken()){ 
    return this._httpservice.checkifloggedin().map(res=>res.data) ; 
    } else { 
    return Observable.of(false); 
    } 
} 
関連する問題