Angular 在FlatMap完成所有请求后执行流程

Angular 在FlatMap完成所有请求后执行流程,angular,rxjs,Angular,Rxjs,我在Angular 6中使用RxJs6.1.0,从多个观测值获取数据,如下所示: ngOnInit(){ this.subscribeInit = this.tradingService.getInProgress() .do((s) => { this.keys = s.map((tdi)=> tdi.key); return this.keys; }) .flatMap((key)=>this.tradingService.getTrading

我在Angular 6中使用RxJs
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


请告诉我如何才能做到这一点。谢谢。

您只需将
complete
处理程序添加到
subscribe()

您可以使用所谓的“部分观察者”对象:


您只需将
complete
处理程序添加到
subscribe()

您可以使用所谓的“部分观察者”对象:


很好,谢谢!您还可以帮助我在flatMap exec期间如何捕获错误并继续处理剩余的请求吗?谢谢!您能否帮助我在flatMap exec期间如何捕获错误并继续处理剩余的请求?
...
.subscribe(
  res => ...,
  undefined,
  () => /* completed */
)
...
.subscribe({
  next: res => ...,
  complete: () => /* completed */,
})