【发布时间】:2017-09-29 23:31:41
【问题描述】:
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函数时需要返回一个observable,但在函数内部,需要调用另一个异步函数getScmServiceMeta,也返回一个Observable,那么如何返回'_.get(res, 'data')' 作为 Observable ??? 谢谢
【问题讨论】:
-
return Observable.of(_.get(res, 'data') )