【发布时间】:2018-10-24 20:35:05
【问题描述】:
在调度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)
)
)
)
)
编辑:我有一个 Redux 记录器,它按以下顺序输出调度的操作:
SEARCHSEARCHSEARCHSEARCHCLEAR_SEARCH_RESULTSSEARCH_SUCCESS
(每个SEARCH 是一个按键)
【问题讨论】:
-
那么问题出在哪里?有什么错误吗?你现在看起来很好。你怎么知道它没有被取消,或者它不是在请求完成后才出现的。
-
我已经编辑了我的帖子,请看一下
-
你看起来不错,所以问题可能出在其他地方。否则制作一个重现问题的演示。
-
嘿@martin,抱歉回复晚了。这是一个带有演示的仓库:github.com/eyal0803/job-search
标签: redux rxjs redux-observable