我有一个异步调用,它在完成时调用一个getStatus()函数,该函数对接收到的数据进行一些计算,然后返回计算出的数据。我正在调用load()函数,我想要计算数据。
load(case, start, end) {
Observable.forkJoin (
this.http.get('/workschedules'),
this.http.get('/block?startDate=' + start + '&endDate=' + end),
this.http.get('/filed?caseId=' + case+ '&startDate=' + start + '&endDate=' + end)
).subscribe(data => {
this.works$ = data[0];
this.block$ = data[1];
this.avail$ = data[2];
}, err => console.log(err), () => this.getStatus(case, 217380, start, end, 5));
}
getStatus(caseId, appId, start, end, capacity: number) {
//some calculation on all the subscribed data
return calculated_data;
}
我想在load()函数调用上获取数据 例如
let temp = load(12512,'22/10/2017','25/10/2017');
答案 0 :(得分:0)
您无法将异步与同步内容混合在一起。
鉴于http
是异步的,您的函数必须返回异步数据(将在某个时候解析)。那将是这样的:
load(...): Observable<any> {
return Observable.forkJoin(...) // without subscribe
}
load(...).subscribe((data) => ...);