Javascript Extjs-在Model.save()中重试API请求
免责声明:我是extjs新手,仍然在框架中摸索 我有一个与PHP后端通信的extjs前端。我的应用程序的一部分向后端提交数据并接收如下响应:Javascript Extjs-在Model.save()中重试API请求,javascript,extjs,callback,extjs4.1,Javascript,Extjs,Callback,Extjs4.1,免责声明:我是extjs新手,仍然在框架中摸索 我有一个与PHP后端通信的extjs前端。我的应用程序的一部分向后端提交数据并接收如下响应: var data = { "name": values.namefield, "activityList" : validActivityList, "flag": true }; var cluster = Ext.create('ClusterModel', data); cluster.save({ success
var data = {
"name": values.namefield,
"activityList" : validActivityList,
"flag": true
};
var cluster = Ext.create('ClusterModel', data);
cluster.save({
success: function (model,data) {
//handle success scenario
},
failure: function (model, response) {
//oops something went wrong
//need to retry the request with data flag set to false!
}
});
我有一个特定的失败场景,需要通过将flag字段设置为false来重试请求。我能想到的唯一方法是在故障处理程序中嵌套和复制代码
大概是这样的:
failure: function (model, response) {
//oops something went wrong
//need to retry the request with data flag set to false!
var data = {
"name": values.namefield,
"activityList" : validActivityList,
"flag": false
};
var clusterRetry = Ext.create('ClusterModel', data);
clusterRetry.save({...//more duplicate code})
}
这感觉像是一个非常糟糕的主意,我甚至不确定它是否会起作用。有没有其他方法可以让我完成这项任务
同样值得注意的是,我使用的是extjs 4.1.1您可以创建一个函数,在出现错误时调用自己,并将标志设置为false 诸如此类:
SaveCluster: function(values, validActivityList, flag) {
var data = {
"name": values.namefield,
"activityList" : validActivityList,
"flag": flag
};
var cluster = Ext.create('ClusterModel', data);
cluster.save({
success: function (model,data) {
//handle success scenario
},
failure: function (model, response) {
this.SaveCluster(values, validActivityList, false);
}
});
}
您可能在故障函数中遇到范围问题,如果问题出现,我会让您找到解决方案,如果您遇到问题,请随时询问我们
我在2年前开始使用ExtJS,我记得这个框架一开始是如何使用的