我的代码如下
$.ajax({
type: 'post',
dataType: 'json',
url: '123.123.0.1',
success: function (result) {
for (var i = 0; i < 2; i++) {
console.log('OUTSIDE');
$.ajax({
type: 'post',
dataType: 'json',
url: '123.123.0.1',
success: function (result) {
console.log('INSIDE');
}
});
}
}
});
该代码的结果是:
OUTSIDE
OUTSIDE
INSIDE
INSIDE
我的目标是我想在AJAX之外等待AJAX内部直到AJAX完成然后在AJAX内部继续。所以我想看结果 喜欢:
OUTSIDE
INSIDE
OUTSIDE
INSIDE
我的问题:
怎么做?如何修复我的代码?
答案 0 :(得分:0)
在进行下一步之前,您必须等待ajax请求完成。 下面是一个递归的例子。
// Code goes here
$.ajax({
type: 'post',
dataType: 'json',
url: '123.123.0.1',
success: function(result) {
function processResult() {
if (i >= 2) return;
console.log('OUTSIDE');
$.ajax({
type: 'post',
dataType: 'json',
url: '123.123.0.1',
success: function(result) {
console.log('INSIDE');
}
}).then(function() {
processResult(++i);
});
}
processResult(0);
}
});