Как не назвать второй эпос, если первый называется? - PullRequest
1 голос
/ 16 апреля 2019

У меня есть специальные эпопеи

const extraEpics = combineEpics(someEpic1, someEpicN);

Каждый из них проверит свой случай, и все они слушают одно и то же действие

action$.pipe(
    ofType(UPDATE_ACTION),
    pluck("payload"),
    filter(checkSomeExtraCase)

Существует также поведение по умолчанию, когда ни один эпос не вызывает

const defaultBehaviorWithoutFilter = action$.pipe(
        ofType(UPDATE_ACTION),
        pluck("payload"),

Мне нужно позвонить, когда была отфильтрована дополнительная логика И я пытаюсь конкатать

export default (action$, state$) =>
  concat(
    extraEpics(action$, state$), 
    defaultBehavior(action$, state$)
  )

Но при вызове extra по умолчанию вызывается Как я могу вызвать значение по умолчанию только тогда, когда дополнительные не был вызван?

1 Ответ

1 голос
/ 16 апреля 2019

В этом случае я думаю, что вы можете взглянуть на rxjs-etc и есть оператор concatIfEmpty, который именно то, что вы хотите.

export default (action$, state$) =>
  extraEpics(action$, state$)
    .pipe(
       concatIfEmpty(defaultBehavior(action$, state$))
     )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...