Объединить массивы в forkJoin - PullRequest
0 голосов
/ 15 января 2019

У меня 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(),
    );
  }
...