将 catchError 与 RxFire firestore collectionData 结合使用时遇到问题
Trouble using catchError with RxFire firestore collectionData
我希望能够响应调用 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 处理错误的正确方法是什么?
catchError
将捕获可观察对象返回的错误。在你的情况下是 collectionData
。我不熟悉 RxFire,但是如果你说 collectionData emits a result with no elements
那么不调用 catchError
是有道理的。空结果仍然被认为是(成功的)结果。尝试让 collectionData
故意失败,看看是否会在 catchError
.
中出现错误
我希望能够响应调用 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 处理错误的正确方法是什么?
catchError
将捕获可观察对象返回的错误。在你的情况下是 collectionData
。我不熟悉 RxFire,但是如果你说 collectionData emits a result with no elements
那么不调用 catchError
是有道理的。空结果仍然被认为是(成功的)结果。尝试让 collectionData
故意失败,看看是否会在 catchError
.