Я пытаюсь упорядочить два ajax-запроса в redux-observables, и второй запрос будет основан на ответе первого, и я по отдельности хочу отправить ответ или ошибку обоих запросов.
Использование concat для обработки одного запроса за другим, но я застрял на том, как использовать ответ первого во второй запрос. Если я цепью использую два switchMap, то через селектор результатов я получу внутреннюю и внешнюю наблюдаемые, но я не получаю, как распределить действие после первого запроса.
export const deleteSettingsEpic = action$ => action$.pipe(
ofType('DELETE_SETTINGSDATA'),
switchMap(action$ => concat(
ajax.ajaxDelete(`${action$.payload.api}/${action$.payload.id}`)
.pipe(
map(r => ({ type: 'DELETE_SUCCESS', payload: r })),
catchError(e => of({ type: 'DELETE_ERROR' }))
),
ajax.get(`${action$.payload.api}?page=${action$.payload.query.page}&limit=${action$.payload.query.limit}`)
.pipe(
map(r => ({
type: action$.payload.getPaginationAction,
payload: {
data: r.response.docs,
page: r.response.page,
totalPages: r.response.totalPages,
limit: r.response.limit,
totalDocs: r.response.totalDocs
}
})),
catchError(e => of({ type: 'FETCH_ERROR' }))
),
of({ type: 'SET_DIMMER_FALSE' }).pipe(delay(250)),
of({ type: 'RESET_ERRORS' }).pipe(delay(1500)),
)
),
);