正在等待一组Ajax调用完成

Waiting for an array of Ajax calls to complete

本文关键字:Ajax 调用 一组 在等待      更新时间:2023-09-26

我一次要进行多个ajax调用。一旦它们全部完成,我需要将用户重定向到另一个页面。

在这个答案的帮助下,我创建了这个:

function verifyAll() {
    var ajaxCalls = [];
    $.each($('.thing'), function(index, thing) {
        ajaxCalls.push(verifyOne($(thing).data('id'));
    });
    $.when(ajaxCalls).done(function() {
        console.log('Done verifying all');
    });
}
function verifyOne(id) {
    return $.ajax({
        type: 'GET',
        url: 'verify.html'
    }).done(function(data) {
        console.log('Done verifying one');
        //do something
    });
}

但是,$.when().done()函数是在单个ajax上调用.done()之前调用的。是我做错了什么,还是有其他方法可以实现我的最终目标?

$.when()不直接支持阵列

尝试

$.when.apply($, ajaxCalls).done(function() {
    console.log('Done verifying all');
    console.log(arguments);
});