После отправки SEARCH
я пытаюсь отменить запрос AJAX, но также сохранить наблюдаемое прослушивание.Я использую takeUntil
и жду действия типа CLEAR_SEARCH_RESULTS
для отмены запроса.
Вот мой эпос:
const searchEpic = action$ =>
action$.ofType(SEARCH).pipe(
debounceTime(500),
switchMap(({ payload }) =>
search(query).pipe(
map(({ response }) => SearchActions.searchSuccess(response)), // dispatches SEARCH_SUCCESS
takeUntil(
action$.ofType(CLEAR_SEARCH_RESULTS)
)
)
)
)
Редактировать: Iиметь регистратор Redux, который выводит отправленные действия в следующем порядке:
SEARCH
SEARCH
SEARCH
SEARCH
CLEAR_SEARCH_RESULTS
SEARCH_SUCCESS
(каждое SEARCH
является нажатием клавиши)