gpt4 book ai didi

javascript - 循环结束前执行的循环内的 AJAX 调用

转载 作者:行者123 更新时间:2023-11-28 11:37:15 25 4
gpt4 key购买 nike

我有以下问题:

我有一个循环:

// Code A
. . .
for (var key in dict){
// Code B
. . .
var list = this.initializeList();
var selfRef = this;

jQuery.ajax({
dataType: 'json',
url: '/someUrl',
data: {'sent_data': sendData},
success: function (recievedData){
this.function(list);
}
});

// Code C
. . .
}
// Code D
. . .

现在,理想的方法是代码的执行顺序是:

  1. 代码A
  2. for循环:
    • 代码B
    • AJAX
    • 代码C
  3. 代码D

但是,问题出在循环的第 2 步中:首先执行代码 B,接下来 - AJAX 调用,然后再次执行 AJAX 代码而不是代码 C 。在下一次迭代中,AJAX 代码将再次执行,而不是代码 B。对我来说,上面列表中显示的执行顺序非常重要。正如您所看到的,变量 list 应该为每个循环重新初始化,但相反,我们有多个 AJAX 调用,仅进行第一次初始化。

如何解决这个问题?

最佳答案

您需要制作 $.ajax()同步(而不是默认的异步),如下所示:

$.ajax({
...
async: false
});

这将导致脚本的执行等待 $.ajax 完成,然后再继续执行脚本的其余部分。

希望这会有所帮助!

关于javascript - 循环结束前执行的循环内的 AJAX 调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16651256/

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