1
private getScmServiceMeta(serviceId: string): Observable<any> {
let service = this.getServiceItem(serviceId);
if (service) {
return this.httpClient.get(serviceUri).map((res: Response) => {
return _.get(res, 'data.serviceinfo');
})
} else {
return Observable.throw('backend server error');
}
}
public inquireScmData(serviceId: string, params: object, templateId: string): Observable<any> {
return this.getScmServiceMeta(serviceId).map((serviceInfo: any) => {
let uri = serviceInfo.routeTemplate;
// How to return the _.get(res, 'data') as an Observable ???
return this.httpClient.get(uri).map((res: Response) => {
if (_.startsWith(_.get(res, 'status.code'), '200')) {
return _.get(res, 'data');
} else {
throw ('status code error');
}
})
})
}
如上面的代碼,我需要調用函數「inquireScmData」何時返回可觀察到的,但在函數內部,它需要調用另一個函數「getScmServiceMeta」這也是異步和返回也是一個Observable,所以如何返回'_.get(res,'data')'作爲Observable? 謝謝角HttpClient的返回可觀察到的
return Observable.of(_。get(res,'data')) –