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

时间:2017-06-11 18:44:43

标签: angular typescript 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>
        }

 }

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

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

2 个答案:

答案 0 :(得分:5)

这应该有效

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

答案 1 :(得分:2)

使用return Observable.of(false)代替return false

相关问题