Javascript jquery ajax when-基于条件的并行ajax调用
假设我有多个需要称为并行的ajax请求。 需要调用的ajax请求是基于条件的 我可以这样做,但它似乎不可行和琐碎Javascript jquery ajax when-基于条件的并行ajax调用,javascript,jquery,ajax,Javascript,Jquery,Ajax,假设我有多个需要称为并行的ajax请求。 需要调用的ajax请求是基于条件的 我可以这样做,但它似乎不可行和琐碎 if (condition1) { $.when( apiRequest1(); ).then(function(result1) { }); } else if (condition 2) { $.when( apiRequest2(); ).then(function(result1) { });
if (condition1) {
$.when(
apiRequest1();
).then(function(result1) {
});
} else if (condition 2) {
$.when(
apiRequest2();
).then(function(result1) {
});
} else if (condition 1 && condition 2) {
$.when(
apiRequest1();
apiRequest2();
).then(function(result1, result2) {
});
}
我想达到的目标如下。概念如下,但如何实现
var apiList = [];
if (condition1) {
append apiRequest1() to apiList;
}
if (condition2) {
append apiRequest2() to apiList;
}
if (condition3) {
append apiRequest3() to apiList;
}
if (conditionN) {
append apiRequestN() to apiList;
}
if (apiList has value) {
$.when(
apiList
).then(function (resultN) {
});
}
数组可以很好地处理这个问题 在每个
if()
块中,只需将您的承诺附加到数组中:
apiList.push(apiRequestN());
最后,您需要将每个项目作为单独的参数传递给$。when()
:
数组可以很好地处理这个问题 在每个
if()
块中,只需将您的承诺附加到数组中:
apiList.push(apiRequestN());
最后,您需要将每个项目作为单独的参数传递给$。when()
:
尝试以下解决方案:
var async1 = $.ajax({//call 1
url:'http://mypage.com',
success: function(data1){
//data 1
}
});
....
var async2 = $.ajax({//call 2
url:'http://mypage.com',
success: function(data2){
//data2
}
});
$.when(async2, async1).done(function(result2, result1) {
console.log('done!')
});
尝试以下解决方案:
var async1 = $.ajax({//call 1
url:'http://mypage.com',
success: function(data1){
//data 1
}
});
....
var async2 = $.ajax({//call 2
url:'http://mypage.com',
success: function(data2){
//data2
}
});
$.when(async2, async1).done(function(result2, result1) {
console.log('done!')
});
好的,那么你想一次调用一个api列表..我对吗?好的,那么你想一次调用一个api列表..我对吗?