在forkJoin中合并数组

时间:2019-01-15 02:43:21

标签: typescript rxjs observable

我有forkJoin返回具有相同签名的多个数组:

return forkJoin(this.appService.getData()).pipe(
      map(response =>
        response
          .map(x => x.map(y => y.data.uploads))
          .map(x => this.format(x)),
      ),
    );

我将代码更改为:

return forkJoin(this.appService.getData()).pipe(
          map(response =>
            response
              .map(x => x.map(y => y.data.uploads))
              .map(([x]) => [...x]) //produces only first array
              .map(x => this.format(x)),
          ),
        );

但是现在我只得到第一个数组。任何想法如何解决?我需要将所有数组合并为一个,因此我的this.format(x)只有一个数组可以操作。 我的getData()看起来像这样:

getData(): Observable<Array<AxiosResponse<MyType>>> {

    //...

    return range(1, end - start).pipe(
      concatMap((i: number) =>
        this.http.get<MyType>(
          getUrl(getStartDate(i), getEndDate(i)),
        ),
      ),
      toArray(),
    );
  }

0 个答案:

没有答案