gpt4 book ai didi

javascript - AJAX循环完成后执行代码

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

我有一个 AJAX 调用,该调用被调用“i”次。我想仅在最后一个 AJAX processData 回调函数完成后执行其余代码(它将 .csv 的值填充到名为“lines”的数组中,并且在所有迭代完成后我需要完成的数组)。到目前为止,它只能通过使用“setTimeout()”来工作,这不是一个很好的解决方案

for (var i = 0; i < options.length; i++) {
(function(index) {
$.ajax({
type: "GET",
url: options[index] + ".csv",
dataType: "text",
success: function(data) {
processData(data, options[index], type)
}
});
})(i);
}
setTimeout(function() {
getAveragePercentages(lines);
}, 500)

最佳答案

您可以使用 JavaScript Promise 功能。

在 Promise 中发出 AJAX 请求。创建一个包含所有这些 promise 的数组。

Promise.all 将在所有 Promise 解决后执行。

var promiseArr = [];
for (var i = 0; i < options.length; i++) {
var promise = new Promise(function(resolve, reject) {
(function(index) {
$.ajax({
type: "GET",
url: options[index] + ".csv",
dataType: "text",
success: function(data) {
processData(data, options[index], type); resolve('outputIfany')
}
});
})(i);
});
promiseArr.push(promise);
}
Promise.all(promiseArr).then(function(values) {
getAveragePercentages(lines);
});

关于javascript - AJAX循环完成后执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51418690/

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