Как объединить несколько циклов запроса в forkJoin, это возможно? - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть наблюдаемые, как:

let obs1$ = of(problemsIds).pipe(flatMap(el => 
  return forkJoin(el.map(id => 
    this.projectsService.getProblemsChanges(+id)))))
let obs2$ = of(versionsIds).pipe(flatMap(el => 
  return forkJoin(el.map(id => 
    this.projectsService.getVersionById(+id)))))

тогда я хочу получить их параллельно:

return forkJoin([obs1$, obs2$])

и ничего не происходит.

Но когда я сделал это с 1 obs (любым из них), он сделал результат.

Почему я не могу так скомбинировать это и как мне этого достичь?

p.s. Я знаю, что я должен отправлять запросы в виде массива идентификаторов, но я заинтересован в этом случае. ТНХ

1 Ответ

0 голосов
/ 08 апреля 2019

ниже должно работать для вас. Пожалуйста, попробуйте.

const obs1$ = this.problemIds.map(id => this.service.getProblemsChanges(+id));
const obs2$ = this.versionIds.map(id => this.service.getVersionById(+id));
return forkJoin(forkJoin(obs1$), forkJoin(obs2$)).subscribe(data => console.log(data));
...