Javascript 反应/重复,如何;连锁店;http调用位于中间件中时http调用的操作
我正在设置一个基本的应用程序来调用服务器获取一些东西。一个问题是,我已经将服务器调用作为一个中间件,以便与我一起工作的其他开发人员可以使用它。我可以打电话-但是我想添加“加载”、“成功”和“错误”操作。之前-我可以通过将调用放在action creator本身中轻松实现这一点,例如:Javascript 反应/重复,如何;连锁店;http调用位于中间件中时http调用的操作,javascript,reactjs,redux,Javascript,Reactjs,Redux,我正在设置一个基本的应用程序来调用服务器获取一些东西。一个问题是,我已经将服务器调用作为一个中间件,以便与我一起工作的其他开发人员可以使用它。我可以打电话-但是我想添加“加载”、“成功”和“错误”操作。之前-我可以通过将调用放在action creator本身中轻松实现这一点,例如: //in the action creator export function fetchData() { return dispatch => { request .get('/myAp
//in the action creator
export function fetchData() {
return dispatch => {
request
.get('/myApi')
.end((err, res) => {
if (err) {
dispatch({
type: LOADING_ERROR,
error: err
});
} else {
let myData = JSON.parse(res.text);
dispatch({
type: LIST_DATA,
myData
});
}
});
dispatch({
type: LOADING_DATA
});
};
这对我来说非常有用,因为可以在ui上访问加载/成功/错误(这样我就可以做显示/隐藏加载程序之类的事情)
在这个新项目中,我在一个中间件中进行了调用,如下所示:
//the middleware
export default (actionObject) => (store) => (next) => (action) => {
switch(action.type) {
case actionObject.LIST:
let constructedURL = actionObject.URL + "?query=&context=" + actionObject.context;
request
.get(constructedURL)
.end((err, res) => {
if (err) {
return next(action);
}
action[options.resultAction] = res.body;
return next(action);
});
break;
default:
return next(action);
}
}
因此,actionObject
只是一个对象,您可以通过它来设置这个中间件,这样它就可以与您自己的操作/简化程序一起工作,但它只是匹配您定义的操作来进行调用。现在的问题是,我不知道如何从这里重新开始加载/成功/错误操作。我在我的动作和减速器中设置了它们,但我不确定如何以这种方式执行
我第一次看到这样的东西-,但是我不确定这是否正是我想要做的。我不确定在哪里可以告诉它启动操作数据加载
,然后在调用成功时启动列表数据
或加载错误
。如果您有任何建议,我都可以,谢谢您的阅读