我使用jquery ajax api来调用web方法,而success
我正在实现showHideDomElement
这样的功能。
function showHideDomElement(data)
{
if(data == 1 )
$('#selector').show();
else
$('#selector').hide();
}
这就是我称呼它的方式
function Validatebatch() {
$.ajax({
type: "POST",
url: getControllerURL("/Invoice") + "/ValidateBatch",
data: {
"Id": $('#someselector').val()
},
async: true, // i tried with 'false' but it affect performance
dataType: "json",
success: function(data) {
showHideDomElement(data);
}
});
}
对Validatebatch
函数的ajax请求多次引发,因此有多个活动的http请求指向url
在不同时间完成。
由于异步行为,success callback
可以按不同的顺序执行。
完成的顺序正在产生问题。请建议一种方法,可以将ajax请求按照执行顺序绑定(请建议除jquery async
属性以外的其他方式)
由于
答案 0 :(得分:1)
首先,您必须重写Validatebatch函数,以便返回$ .ajax调用生成的Promise,例如:
sicp
然后你必须存储每个Validatebatch调用的promise并使用它来触发下一个Validatebatch只有在前一个完成之后,你应该有类似的东西:
function Validatebatch() {
return $.ajax({