我一次有多个ajax调用。完成全部后,我需要将用户重定向到另一个页面。
在this回答的帮助下,我创建了这个:
function verifyAll() {
var ajaxCalls = [];
$.each($('.thing'), function(index, thing) {
ajaxCalls.push(verifyOne($(thing).data('id'));
});
$.when(ajaxCalls).done(function() {
console.log('Done verifying all');
});
}
function verifyOne(id) {
return $.ajax({
type: 'GET',
url: 'verify.html'
}).done(function(data) {
console.log('Done verifying one');
//do something
});
}
但是,在单个ajax上调用$.when().done()
之前调用.done()
函数。有什么我做错了还是有另一种方法来实现我的最终目标?
答案 0 :(得分:2)
$.when()
不直接支持数组
尝试
$.when.apply($, ajaxCalls).done(function() {
console.log('Done verifying all');
console.log(arguments);
});