我正在Angular 6中使用RxJ 6.1.0
从多个可观察对象获取数据,如下所示:
ngOnInit(){
this.subscribeInit = this.tradingService.getInProgress()
.do((s) => {
this.keys = s.map((tdi)=> tdi.key);
return this.keys;
})
.flatMap((key)=>this.tradingService.getTradingData(key))
.subscribe((res)=>{
this.formattedData.push(res);
});
}
我想在所有可观察对象都已完成从flatMap
的执行之后进行处理,即所有数据都被推送到formattedData
。
请指导我知道如何实现此目标。谢谢。
答案 0 :(得分:2)
您只需将complete
处理程序添加到subscribe()
:
...
.subscribe(
res => ...,
undefined,
() => /* completed */
)
您可以使用所谓的“部分观察者”对象:
...
.subscribe({
next: res => ...,
complete: () => /* completed */,
})