我有一个ngx图,我想从2个或更多不同的Mongodb表中插入一些数据。因此,我必须对两个不同的路由发出HTTPRequests,因为每个路由都在mongodb中查询其自己的Collection / Tables。我如何在一种大方法中做到这一点,以将所有数据收集到一张图表中?因为请求是异步的,所以我必须对HTTP-Request方法中的图表进行数据处理...如果我仅从一条路由(或一张表)进行查询,那就可以了。但是由于必须从多个表中查询,所以我必须等待一个请求完成,进行数据处理并将数据保存在某个地方。然后,我必须执行第二个请求,然后再次执行所有相同的操作。 >
我该怎么做?问题是,一旦我“退出”数据所在的一个httpRequest方法,该数据似乎就不再可用...
这是我目前一个请求的方法:
getProduktReservierung(startTime, endTime, DemoID) {
return this.http.get('http://localhost:5555/chart/Product/thisprod' + startTime+'.'+endTime+'.' + DemoID)
.subscribe((res: Response) => {
this.chartData = res;
console.log("Produkt Reservation Data:", this.chartData);
this.dataArray = this.formatDataReservierungen(this.chartData);
},
(err) => {
if (err.error instanceof Error) {
console.log('Client-side error occured.');
} else {
console.log('Server-side error occured.');
}
});
}
数据处理和检索部分位于.subscribe()方法内部...如果我查询其他表数据并希望同时具有这两个数据,该怎么办?
答案 0 :(得分:0)
您应该查看forkjoin。
类似于promise.all
。创建一个包含所有http
请求的数组,并将该数组传递到forkJoin
和.subscribe()
中,就像处理单个http
请求一样。