在rxjs函数中返回布尔值失败

Geo*_*off 3 rxjs typescript angular

我是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>
        }

 }
Run Code Online (Sandbox Code Playgroud)

如何更改上面的else部分以使用布尔observable,以便在其他组件中我只能这样做

this._authservice.checkLoggedin()
  .subscribe.....//here get the value whether true or false
Run Code Online (Sandbox Code Playgroud)

Vam*_*shi 5

这应该工作

checkLoggedin():Observable<boolean> { 
  if(this._tokenService.getToken()){ 
    return this._httpservice.checkifloggedin().map(res=>res.data ) ;
  } else { 
    return Observable.of(false);
  }
}
Run Code Online (Sandbox Code Playgroud)