【发布时间】:2022-01-18 21:54:00
【问题描述】:
我有以下数据结构
export interface Node {
id: string;
name: string;
children?: Node[];
}
我想在 RxJs 中使用递归 HTTP 调用填充由 Nodes 组成的树。
我尝试了this question 上提出的解决方案,但无法成功。 HTTP 调用正确,但 Observable 永远不会完成,因此订阅不会被执行。
这是我一直坚持的代码:
ngOnInit(): void {
this.service.getById(this.id)
.pipe(mergeMap(s => this.getChildren(s)))
.subscribe(res => {
// IT NEVER GETS HERE
});
}
getChildren(node: Node): Observable<Node> {
return this.service.getChildren(node.id).pipe(
mergeMap(children => forkJoin(children.map(node => this.getChildren(node)))),
map(children => ({ ...node, children }))
);
}
我做错了什么? 请帮忙,谢谢建议。
【问题讨论】:
标签: angular http recursion rxjs observable