在多个服务调用上使用 combineLatest 时处理错误

Handling errors when using combineLatest on several service calls

使用以下代码(取自ngrx/store中的@Effect())

.switchMap(({token, param1, param2}) => {
  return Observable.combineLatest(
    this.service.getData2(token, param1),
    this.service.getData2(token, param2),
    this.service.getData3(token),
  );
})

捕获错误的最简洁但正确的模式是什么? .catch 应该跟在每个 getData* 调用之后吗?我们不希望 .catch() 在主 @Effect() 链的末尾,对吗?

这个问题类似于 ,但有点不同,因为我没有 .subscribe() 调用这里。

这完全取决于所需的行为。假设您要取 3 只动物来展示。当一个失败时你希望发生什么?

  • 不展示任何动物。 -> 在末尾添加一个catch
  • 显示其他动物。 -> 添加 catch 到每个数据调用。