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

时间:2017-04-27 14:20:27

标签: rxjs rxjs5 ngrx-effects

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

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

捕捉错误的最简洁但正确的模式是什么? 每次getData*电话都应该播放.catch吗?我们不希望在主.catch()链的末尾有@Effect(),是吗?

这个问题类似于this one,但有点不同,我在这里没有.subscribe()来电。

1 个答案:

答案 0 :(得分:2)

这完全取决于所需的行为。让我们假设您正在获取您将要显示的3只动物。当一个人失败时你想要发生什么?

  • 不要展示任何动物。 - >在末尾添加catch
  • 展示其他动物。 - >为每次数据通话添加catch