gpt4 book ai didi

jquery - 等待 Ajax 函数完成后再开始新的函数

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

我有以下脚本 -

function getdata(stringArray, Net) {
if (stringArray, [0] != "") {
var processing = false;
for (var i = 0; i < (stringArray, i++) {
var username = (stringArray, [i];
if (processing === false) {
processing = true;
$.when(
$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: "Default.aspx/getdata",
data: JSON.stringify({ test: 'test' }),
dataType: "json",
success: function (data) {
var json = data.d;
FinalJson = json;
doStuff(Net);
},
error: function (err) {
alert("Error please retry.");
}
})
).done(function () {
processing = false;
});
}
}

} else {

}
};

stringArray中会有不同数量的字符串。对于每个字符串,我想要执行一次 Ajax 调用,但是要等到调用完成后再开始新的调用。

我认为通过添加 processing 变量并在进入函数时最初将其设置为 false,然后在 ajax 调用之前将其设置为 true,即 .done 设置处理为 false 就可以实现这一点。

由于某种原因,它会触发第一个 Ajax 调用,然后停止,而不是在第一个调用完成后启动列表中的下一个调用。

我哪里出错了?

最佳答案

如果您确实需要同步处理 ajax 请求(一次一个),您可以设置选项

异步:假

所以您的请求将如下所示:

$.ajax({
type: "post",
contentType: "application/json; charset=utf-8",
url: "Default.aspx/getdata",
async: false,
data: JSON.stringify({ test: 'test' }),
dataType: "json",
success: function (data) {
var json = data.d;
FinalJson = json;
doStuff(Net);
},
error: function (err) {
alert("Error please retry.");
}
})

关于jquery - 等待 Ajax 函数完成后再开始新的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25328168/

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