如果第一个史诗调用,如何不调用第二个史诗?
How not to call the second epic if the first one called?
我有一个特别的epics
const extraEpics = combineEpics(someEpic1, someEpicN);
每个人都会检查他们的情况,他们都听同一个动作
action$.pipe(
ofType(UPDATE_ACTION),
pluck("payload"),
filter(checkSomeExtraCase)
当没有一个史诗不会导致时,还有一个默认行为
const defaultBehaviorWithoutFilter = action$.pipe(
ofType(UPDATE_ACTION),
pluck("payload"),
我需要在过滤额外逻辑时调用它
我尝试 concat
export default (action$, state$) =>
concat(
extraEpics(action$, state$),
defaultBehavior(action$, state$)
)
但是调用extra时,默认会调用到
如何在没有调用 extra 时才导致默认?
在这种情况下,我认为您可以看一下 rxjs-etc 并且有 concatIfEmpty
运算符,这正是您想要的。
export default (action$, state$) =>
extraEpics(action$, state$)
.pipe(
concatIfEmpty(defaultBehavior(action$, state$))
)
我有一个特别的epics
const extraEpics = combineEpics(someEpic1, someEpicN);
每个人都会检查他们的情况,他们都听同一个动作
action$.pipe(
ofType(UPDATE_ACTION),
pluck("payload"),
filter(checkSomeExtraCase)
当没有一个史诗不会导致时,还有一个默认行为
const defaultBehaviorWithoutFilter = action$.pipe(
ofType(UPDATE_ACTION),
pluck("payload"),
我需要在过滤额外逻辑时调用它 我尝试 concat
export default (action$, state$) =>
concat(
extraEpics(action$, state$),
defaultBehavior(action$, state$)
)
但是调用extra时,默认会调用到 如何在没有调用 extra 时才导致默认?
在这种情况下,我认为您可以看一下 rxjs-etc 并且有 concatIfEmpty
运算符,这正是您想要的。
export default (action$, state$) =>
extraEpics(action$, state$)
.pipe(
concatIfEmpty(defaultBehavior(action$, state$))
)