1

我希望能够响应对 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 处理错误的正确方法是什么?

4

1 回答 1

2

catchError将捕获可观察对象返回的错误。在你的情况下是collectionData. 我不熟悉 RxFire,但如果你这么说,那么不被调用collectionData emits a result with no elements是有道理的。catchError空结果仍被视为(成功)结果。故意尝试collectionData失败,看看你是否会在catchError.

于 2019-01-19T20:50:53.223 回答