Я пытаюсь найти способ, как я могу буферизовать данные на входе concatMap до завершения предыдущего наблюдения.
Лучше объяснить это на моем реальном примере.
У меня есть приложение, использующее наблюдаемую избыточность.
Существует действие validate
const validate = updatedDataIds => ({
type: VALIDATE,
payload: { updatedDataIds },
});
Я хочу буферизовать массив updatedDataIds и уменьшить количество вызовов longTimePostAjaxFunction
.
export const validateEpic = (action$, state$, { longTimePostAjaxFunction }) =>
action$.pipe(
ofType(VALIDATE),
map(({ payload: { updatedDataIds } }) => updatedDatapointIds),
// I want to buffer longTimePostAjaxFunction here until previous observable (longTimePostAjaxFunction) completes
map(flatten),
concatMap(updatedDataIds =>
longTimePostAjaxFunction('validate/url', {
updatedDataIds,
}).pipe(
map(validateFulfilled),
),
),
);
У вас есть идеи, как мне решить эту проблему?