【发布时间】:2020-05-30 00:11:20
【问题描述】:
简而言之,我想根据有效负载将switchMap 应用于可观察对象。
我目前有一个带有 redux-observable 的史诗,它在 /api/document/{name} 上执行 GET。我将name 包含在我的操作的有效负载中。挑战在于我只根据动作类型进行过滤,所以我也不知道如何根据动作的有效负载动态过滤。
const documentFetchEpic: Epic<TRootAction, TRootAction, TRootState> = (action$, store) =>
action$.pipe(
filter(isActionOf(documentActions.fetch)),
// TODO: Should filter and then switchMap based on different documentName
mergeMap(action =>
merge(
ApiUtils.documents.fetch(action.payload).pipe(
mergeMap(response => [
documentActions.fetchSuccess({
name: action.payload,
data: response.data,
}),
]),
catchError(err => of(documentActions.fetchFailure(err)))
)
)
)
);
如果我将此 mergeMap 设为 switchMap,它将应用一个独立于操作值的 switchMap。相反,如果action.payload 相同,我只想使用 switchMap。
【问题讨论】:
标签: rxjs redux-observable