0
我有以下代码:如何避免与Observable无限循环?
ngOnInit(): void
{
const source = this.categoryService.getCategories();
console.log(source instanceof Observable);
const example = source.map((categor) => categor.map((categories) => {
const links = this.categoryService.countCategoryLinks(categories.id);
const aff = example.merge(links).subscribe(linke => console.log(linke));
return categories.id
}));
}
其中getCategories()返回一个可观察到的。
在此可观察到的每一个项目,我得到categories.id场运行名为countCategoryLinks另一种方法(categories.id)也返回可观察到的()。
我的问题是:我只有3个类别(ok),countCategoryLinks()返回3个项目(ok),但上面的代码在控制台中显示了一个无限循环。 为了测试目的,“手动”启动的这两种方法都不显示任何循环。
这个问题真的来自上面的代码。
有什么想法?
预先感谢和问候
我正在尝试合并两种方法的结果......这不是正确的方法吗?源代码包含3个项目。我从源代码中获取一个字段,并启动另一个方法,获得一个可观察值并将其合并到第一个字段中。 –
@PhilippeCorrèges - 您可以合并“map”调用之外的结果,也可以将生成的结果合并到“ map'调用,但合并当前所在函数的结果会导致无限循环(无限递归)。 – Igor
如果我设置了** const aff = example.merge(links).subscribe(linke => console.log(linke)); **在地图外部,链接Observable()的可见性不会更高。 –