是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
答案 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
。