使用batch的原因
在开发过程中遇到了需要在一个事件中循环调用同一个接口去进行后台取数赋值,其中出现了500报错:
Default changeset implementation allows only one operation
使用方法
useBatch:function(){
//1.设置useBatch为true
this.getView().getModel().setUseBatch(true);
arr.forEach(function(item, index) {
//2.设置传递的组
var operationFlag = "begin" + index;
//3.调用接口
that.setPriceElementDataByCargoInfo("/items/" + index, operationFlag);
});
//4.讲所有组的内容提交并一起发起请求
this.getView().getModel().submitChanges();
},
setPriceElementDataByCargoInfo:function( sGoodsPath, isBatch){
that.getView().setBusy(true);
oDataModel.create("/(接口名字/eneitySet)", sGoodsPath, {
"groupId": isBatch,
"changeSetId": isBatch,
success: function(oData, response) {
console.log("多行batch返回的某组对应的odata", oData);
that.getView().setBusy(false);
},
error: function(oError) {
that.getView().setBusy(false);
}
});
}