我知道有很多关于标题主题的问题,但我无法找到有助于我跟进的清晰简洁的问题/回复。
假设我们有 x 数量的 web api 调用返回 observables Observable<cs[]>... 见
init() {
this.service.serviceA().subscribe({
next: (as) => {
this.as = as;
this.service.serviceB().subscribe({
next: (bs) => {
this.bs = bs;
this.service.serviceC().subscribe({
next: (cs) => {
this.cs = cs;
this.restructureABCs();
},
error: (e) => this.notification.showError('Failed to load cs! Error: ' + e.messageerror)
});
},
error: (e) => this.notification.showError('Failed to load bs! Error: ' + e.messageerror)
});
},
error: (e) => this.notification.showError('Failed to load as! Error: ' + e.messageerror)
})
}
函数restructureABCs()依赖于 as/bs & cs。因为,bs & cs 不相互依赖。当前的实现很丑陋,可以改进,但我不确定应该使用哪个运算符。使用 concatMap 对我来说没有意义,因为(根据我可能有缺陷的理解)多个流将被合并为一个,这是我不想要的。我只需要确保在调用restructureABCs()函数之前加载 as/bs & cs。
Angular13,rxjs7.4