在RxFire Firestore CollectionData中使用catchError时遇到问题

时间:2019-01-19 19:01:32

标签: rxjs redux-observable rxfire

我希望能够响应调用collectionData的错误。我添加了catchError,但是它从未被调用。实际上,collectionData会发出没有元素的结果。

export const bundleEpic = action$ => action$.pipe(
  ofType(BUNDLES_LOAD),
  tap(action => console.log(`Received action: type=${action.type}`)),
  switchMap(() => (
    collectionData(bundlesRef, 'id')
    .pipe(
      tap(docs => console.log(`bundleEpic: size = ${docs.length}`)),
      map(docs => publicBundlesLoadSuccess(docs)),
      catchError(error => from(publicBundlesLoadFail(error))
    )
  ))
)

使用collectionData处理错误的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

catchError将捕获可观察对象返回的错误。您的情况是collectionData。我对RxFire不熟悉,但是如果您说collectionData emits a result with no elements,那么不调用catchError就是很有意义的。空结果仍被视为(成功)结果。尝试使collectionData故意失败,以查看您是否会在catchError中遇到错误。