等待一系列Ajax调用完成

时间:2016-07-27 15:34:42

标签: javascript jquery ajax

我一次有多个ajax调用。完成全部后,我需要将用户重定向到另一个页面。

this回答的帮助下,我创建了这个:

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
    });
}

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

1 个答案:

答案 0 :(得分:2)

$.when()不直接支持数组

尝试

$.when.apply($, ajaxCalls).done(function() {

    console.log('Done verifying all');
    console.log(arguments);
});