gpt4 book ai didi

javascript - 在循环中执行 ajax 查询,然后执行使用其组合输出的函数

转载 作者:行者123 更新时间:2023-11-30 15:09:04 24 4
gpt4 key购买 nike

我有一个 ajax 查询,后跟一些函数,我使用 .then() promise 回调按顺序执行它们:

var pictures = [];
var venues = **an array of venues**

$.get(url).then(functionA, functionFail).then(function B);

但是第一个成功回调 functionA 包含一个循环,该循环触发“n”个 ajax 请求:

for(var i=0; i<n; i++) { 
var venue = venues[i];
var new_url = **some_url**

$.ajax({url: new_url, async: false}).done(function(data) {
var pics = data.response.photos.items;
pictures.push(pics[0]);
pictures.push(pics[1]);
}).fail(function() {
console.log('Failed!');
});
}

这些循环的 ajax 请求填满了全局 pictures 数组。图片数组随后由 functionB 使用,但由于异步性质,该数组不会被完全填满并立即执行。

我尝试使请求与 async: false 同步,但它并不完全有效(它遗漏了循环的最后一个请求)。

如何确保 functionB 仅在所有 ajax 请求完成后执行?我不想使用超时,但如果没有别的,我会退而求其次。

最佳答案

当您使用 jQuery 时,它看起来像 jQuery.when()可以获取多个结果,然后在全部解决后调用 done。

关于javascript - 在循环中执行 ajax 查询,然后执行使用其组合输出的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45376366/

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