我在循环中有一个ajax调用:
$.each(chunkedImages, function(index, image) {
$.ajax({
type: 'POST',
url: url,
data: {images: image, key: key},
}).success(function( data ) {
countConvertedImages += data;
if( index === chunkedImages.length-1 ) {
console.log( countConvertedImages );
}
});
});
我的问题是“ countConvertedImages”变量不是最新的。由于某种原因,里面没有正确的值。我认为这与ajax调用的顺序有关,因为它们可能尚未完成。
所有ajax调用结束后如何输出内容?
答案 0 :(得分:0)
使用$ .when(如下所述)
$.when(
$.each(chunkedImages, function (index, image) {
$.ajax({
type: 'POST',
url: url,
data: { images: image, key: key },
success: function (data) {
countConvertedImages += data;
if (index === chunkedImages.length - 1) {
console.log(countConvertedImages);
}
}
})
})
).done(function () {
});
答案 1 :(得分:0)
谢谢您的链接:How do I return the response from an asynchronous call?
使用.ajaxStop()引导我找到适合我的解决方案
$(document).one("ajaxStop", function() {
...
});
是我的理想之选:https://api.jquery.com/ajaxStop/