У меня есть одна эпопея
type GetRailwaysEpic = Epic<GetRailwaysActions, AppState>;
const getRailwaysEpic: GetRailwaysEpic = (action$, state$) =>
action$.pipe(
filter(isActionOf(getRailways.request)),
switchMap(a =>
getRailways(state$.value.mileages.filters.date)
.then(getRailways.success)
.catch(getRailways.failure)
)
);
, когда я вызываю куда-нибудь actions.getRailways.request (), она работает как положено (сначала выполняется запрос REQUEST, затем - SUCCESS of FAILURE)
У меня есть другойepic
const initEpic: Epic<FiltersActions, AppState> = (action$, state$) =>
action$.pipe(
filter(isActionOf(init)),
switchMap(({ payload: { date, depotId, locTypeId, railwayId } }) =>
of(selectDate(date)).pipe(
concat(
forkEpic(getRailwaysEpic, state$, getRailways.request())
)
)
)
);
моя функция ForkEpic:
function forkEpic<T extends Action, S>(
epicFactory: Epic<T, S>,
state$: StateObservable<S>,
...actions: T[]
) {
const actions$ = ActionsObservable.of(...actions);
return epicFactory(actions$, state$, null);
}
Что я хочу: действие 'init' -> действие 'selectDate' -> действие 'getRailways.request' -> 'getRailways.успех »|действие 'getRailways.failure'
Что я вижу: действие 'init' -> действие 'selectDate' -> 'getRailways.success' |Действие «getRailways.failure»
Действие «getRailways.request» где-то отсутствует.Что я делаю не так?
PS getRailways - это функция, которая возвращает обещание PPS. Я нашел подобный вопрос здесь Как связать асинхронные действия и ждать результата без store.dispatch Но этоне то, что я на самом деле ищу.