如何在forkJoin中组合多个请求循环,这可能吗?

时间:2019-04-08 10:29:16

标签: rxjs observable fork-join

我有类似的观测值:

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)))))

然后我要并行获取em:

return forkJoin([obs1$, obs2$])

什么也没发生。

但是当ive用1 obs(em的任何人)完成时,它会执行结果。

为什么我不能像这样将其结合起来,又如何实现呢?

p.s。我知道我必须将请求作为ID数组发送,但是我对此情况不感兴趣。

1 个答案:

答案 0 :(得分:0)

以下内容应为您工作。请尝试。

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));