X 内部调用和 forkJoin 弃用

X inner calls and forkJoin deprecation

我有以下代码:

ngOnInit(): void {
  this.issueService.getIssues().pipe(
    switchMap(issues => {
      this.issuesList = issues;
      const observables = this.issuesList.map(issue => this.issueService.getChildrenIssues(issue.id));

       return forkJoin([observables]);
     })
  ).subscribe(
  (...results) => {
    results.map((result, i) => {
      this.childIssueMap.set(this.issuesList[i].id, result);
      // error: Argument of type '[Observable<Issue[]>]' is not assignable to parameter of type 'Issue[]'.
    });
  }
);
}

其中:

public issuesList: Issue[];
public childIssueMap = new Map<string, Issue[]>();

我需要先调用“getIssues()”从服务器获取所有问题。然后,当我得到它们时,对于它们中的每一个,我都需要调用一个服务“getChildrenIssues(parentId)”,我在其中传递问题 ID 并获得所有子问题。然后,我将父 ID 作为键,将子问题列表作为值,将子问题存储在 childIssueMap 中。

我不太确定该怎么做。我尝试使用 forkJoin,但我的编辑说它已被弃用,因此我使用了带有 [] 的变体,但这次我收到了您在上面看到的错误。

我通过以下方式使用 forkJoin 解决了这个问题:

this.issueService.getIssues().pipe(
  switchMap(
    issues => {
       this.issuesList = issues;
       const observables = this.issuesList.map(issue => this.issueService.getChildrenIssues(issue.id));
       const source = forkJoin(observables);

       return source;
  })
).subscribe(
  (children) => children.forEach((child, i) => {
    this.childIssueMap.set(this.issuesList[i].id, child);
  })
);