0
我想從一個響應中得到的響應返回一個布爾可觀測值,這個響應來自於父可觀察值響應內部的可觀測值。但是,可觀察孩子不會總是依賴於父親可觀察到的資源。從嵌套可觀測值返回可觀測值
我知道要做這項工作,我必須使用.map,並且我可以在訂閱中返回observable,但在此之後我難倒了。
這種情況是,我做了一個auth檢查,如果通過,然後執行api調用,如果失敗返回false。如果api調用失敗返回false,並且成功則返回true。
getEvents(): Observable<boolean> {
this.authSrvc.authCheck().map((res: boolean) => {
if (res) {
this.eventsSrvc.getEvents(this.pageNum, this.pageSize, this.searchText).timeout(15000).map((data: Response) => data.json()).subscribe((res:any)=>
{
if(res.value.length === 0)
{
Observable.of(false);
}
else
{
this.eventsList = this.eventsList.concat(data);
this.storage.ready().then(() => {
this.storage.set('events', this.eventsList)
})
Observable.of(true);
}
},(err:any)=>
{
this.helperSrvc.errorMessage(err);
return Observable.of(false);
})
}
else {
this.helperSrvc.authFailed();
this.authSrvc.logout();
this.pushSrvc.unRegisterPush();
this.calendarSrvc.clearEvents();
this.locationSrvc.clearGeofences();
this.navCtrl.setRoot(AuthPage);
return Observable.of(false);
//
}
})
}
我要麼不能得到響應,要麼我得知被調用的函數沒有.subscribe()可用。