Я использую react
+ redux
+ redux-observable
.
У меня есть следующие эпические действия:
export const fetchCompaniesEpic = (action$: Observable<Action>): Observable<Action> =>
action$.pipe(
ofType(FETCH_COMPANIES),
take(1),
switchMap((action: any) => WebServiceProxy.getCompanies().pipe(map((companies: Company[]) => fetchCompaniesFulfilled(companies))))
);
, который выполняет некоторую асинхронную операцию, а затем вызывает «обычное действие» с результатами:
export const fetchCompaniesFulfilled = (companies: Company[]) => ({ type: 'FETCH_COMPANIES_FULFILLED', companies });
Затем внутри своего контейнера я отправляю эпическое действие следующим образом:
const mapDispatchToProps: any = (dispatch: Dispatch<Action>, ownProps: any) => ({
fetchCompanies: (): void => {
dispatch({ type: FETCH_COMPANIES });
}
});
Все работает как заклинание, но как я могу узнать, когда эпическое действие закончится?
Я хотел бы сделать что-то вроде dispatch({ type: FETCH_COMPANIES }).subscribe(...)