Javascript 使用可观察到的redux thunk
我正在使用redux thunk来管理react应用程序中的异步内容,我希望使用redux observable来更轻松地管理复杂的异步流(例如,concat多个Ajax调用)。有没有一种方法可以在不修改已经完成的内容的情况下执行此操作 这里有一个例子来说明我的意思:Javascript 使用可观察到的redux thunk,javascript,reactjs,rxjs5,redux-thunk,redux-observable,Javascript,Reactjs,Rxjs5,Redux Thunk,Redux Observable,我正在使用redux thunk来管理react应用程序中的异步内容,我希望使用redux observable来更轻松地管理复杂的异步流(例如,concat多个Ajax调用)。有没有一种方法可以在不修改已经完成的内容的情况下执行此操作 这里有一个例子来说明我的意思: const fetchSomeData = () => { return (dispatch, getState) => { doAnAjaxCall((err, response) =>
const fetchSomeData = () => {
return (dispatch, getState) => {
doAnAjaxCall((err, response) => {
if (err) return dispatch({type: 'ERROR', err})
// do something
return dispatch({type: 'SUCCESS', response})
})
}
}
是否可以在epic中使用fetchSomeData
既然redux thunk是基于承诺的redux observable应该允许这样做,我是不是遗漏了什么?是的!你完全可以一起使用它们。只需将redux thunk中间件放在redux可观察中间件之前
applyMiddleware(thunkMiddleware, epicMiddleware)
Redux按照作为参数提供的顺序应用中间件,因此在本例中,我们希望thunk中间件吸收任何已调度的thunk,以便thunk函数本身永远不会达到Redux可观察的程度(仅纯操作)。但是您的epics仍然可以发送thunks,因为redux observable中间件使用了
存储。在引擎盖下发送。我认为您仍然需要在epic注册方面做一些工作。您可以使用observable包装现有承诺。但我建议使用redux observable和remove redux thunk这两种方法都很好,而且处理异步操作的方式也不同。我喜欢redux observable,所以我可能会有偏见。这个例子不再适用于最新的redux observable版本。请帮助使用epicMiddleware进行更新。运行(rootEpic)@jayphelps