gpt4 book ai didi

javascript - jquery deferred.done : passing a data array to done method

转载 作者:行者123 更新时间:2023-12-03 10:04:46 25 4
gpt4 key购买 nike

我正在使用https://api.jquery.com/jquery.when/中描述的方法进行一系列 ajax 调用。 (基于该页面中的示例 $.when( $.ajax( "/page1.php"), $.ajax( "/page2.php") ))。

下面的代码有效。但是,我无法弄清楚如何将数据数组传递给 .done() 方法。在下面的示例中,我有 data1、data2、data3。但在实际情况下,它可能是 data1、data2、...、dataN,其中“N”可以是任何数字。你能帮我吗?我想将“i”值映射到相应的数据值。

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
});
}

最佳答案

您可以使用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

关于javascript - jquery deferred.done : passing a data array to done method,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30412140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com