我正在使用https://api.jquery.com/jquery.when/中描述的方法进行一系列的ajax调用。 (基于该页面中的示例$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) )
)。
下面的代码有效。但是,我无法弄清楚如何将数据数组传递给.done()
方法。在下面的例子中,我有data1,data2,data3。但是在实际情况下,它可能是data1,data2,...,dataN,其中' N'可以是任何数字。你能帮我吗?我想要映射'我'值对应的数据值。
function test() {
var myArr = [];
var i;
for (i = 1; i <= 3; i++) {
myArr.push(
jQuery.ajax({
type: "GET",
url: "http:/c.html/" + i,
});
);
}
$.when.apply($, myArr).done(function(data1, data2, data3) {
//do something on data1, data2, data3
}).fail (function (jqXHR, textStatus) {
//oops..failed
});
}
答案 0 :(得分:1)
您可以使用arguments objects这是一个类似于对象的数组,其中包含传递给函数的所有参数
function test() {
var myArr = [];
var i;
for (i = 1; i <= 3; i++) {
myArr.push(jQuery.ajax({
type: "GET",
url: "http:/c.html/" + i,
}));
}
$.when.apply($, myArr).done(function () {
$.each(arguments, function (idx, args) {
console.log(args[0])
})
}).fail(function (jqXHR, textStatus) {
//oops..failed
});
}
演示:Fiddle