我有以下问题:
我有一个循环:
// 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
. . .
现在,理想的方法是代码的执行顺序是:
- 代码 A
- for循环:
- 代码 B
- AJAX
- 代码 C
- 代码 D
但是,问题出在循环的第 2 步:首先,执行Code B,然后是 AJAX 调用,然后再次执行 AJAX 代码而不是Code C。在下一次迭代中,再次执行 AJAX 代码而不是代码 B。对我来说,执行顺序如上表所示非常重要。正如你所看到的,变量列表应该为每个循环重新初始化,但是,我们有多个 AJAX 调用,只有第一次初始化。
我该如何解决?