Angular 2+ HTTPRequests以一种图表方法异步地从多个图表中获取数据

时间:2018-07-26 09:48:37

标签: angular asynchronous httprequest

我有一个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()方法内部...如果我查询其他表数据并希望同时具有这两个数据,该怎么办?

1 个答案:

答案 0 :(得分:0)

您应该查看forkjoin

类似于promise.all。创建一个包含所有http请求的数组,并将该数组传递到forkJoin.subscribe()中,就像处理单个http请求一样。