我有以下代码:
$('#remove-commercial-products-modal').find('form').submit(function() {
var promises = [];
var $modal = $(this).closest('.modal');
$(this).find('input:checkbox:checked').each(function() {
promises.push(
$.ajax({
url: '/commercial/products/unclaim/' + $(this).val() + '/',
dataType: 'json',
timeout: 10000,
cache: false
}));
});
$.when.apply($, promises).done(function(result) {
$modal.modal('hide');
});
return false;
});
因此,当我提交表单时,我会收集已选中复选框的值,然后创建了一个promises数组,每个promise都是一个$ .ajax调用。
执行我的调用,执行.done
函数中的代码。
但是,我认为.done
期待数字的参数,每个承诺一个。但是我不知道我提前有多少,而且我希望得到一系列结果(每一个都是$ .ajax调用的响应。)
有人知道我是否可以将我的回复分组? 谢谢!
答案 0 :(得分:3)
$.when.apply($, promises).done(function() {
var l = arguments.length,
i,
jqxhr;
for( i = 0; i < l; ++i ) {
jqxhr = arguments[i][2]; //The i:th jQXHR passed
}
});
请参阅docs