Обработка ошибок при использовании combLatest для нескольких сервисных вызовов

Со следующим фрагментом кода (взято из @Effect() в ngrx/store)

.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() звоню.


person user776686    schedule 27.04.2017    source источник


Ответы (1)


Это полностью зависит от желаемого поведения. Предположим, вы приносите 3 животных, которых будете отображать. Что вы хотите, чтобы произошло, когда один терпит неудачу?

  • Не отображать никаких животных. -> добавить catch в конец
  • Покажите других животных. -> добавить catch к каждому вызову данных.
person Robin Dijkhof    schedule 27.04.2017