gpt4 book ai didi

jquery - 是否可以在for循环语句下完成所有ajax调用后运行代码?

转载 作者:行者123 更新时间:2023-12-01 00:37:51 25 4
gpt4 key购买 nike

我有一个for循环语句,每个循环都会执行一个ajax调用。

$.each(arr, function(i, v) {
var url = '/xml.php?id=' + v;
$.ajax({
url: url,
type: 'GET',
dataType: 'xml',
success: function(xml) {
if ($(xml).find('Lists').attr('total') == 1) {
// some code here
}
},
complete: function() {
// some code here
}
})
})

我想在循环下所有 ajax 调用完成后运行代码,我尝试将下面的代码放在最后一行,当 ajax 调用完成时它不会执行

    if (i == arr.length - 1) {
// some code here
}

因此,如果我有10次循环,就有10次ajax调用。我想在 10 次 ajax 调用完成后运行代码,有什么想法吗?

使用.ajaxComplete()还是.done()来实现更好?

谢谢

最佳答案

尝试使用$.when()

var arr = [];
$.each(arr, function(i, v) {
var url = '/xml.php?id=' + v;
var xhr = $.ajax({
url: url,
type: 'GET',
dataType: 'xml',
success: function(xml) {
if ($(xml).find('Lists').attr('total') == 1) {
// some code here
}
},
complete: function() {
// some code here
}
});
arr.push(xhr);
})

$.when.apply($, arr).then(function(){
console.log('do')
})

关于jquery - 是否可以在for循环语句下完成所有ajax调用后运行代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16956116/

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