完成后如何从所有ajax调用中获取所有返回的数据?

时间:2016-09-12 12:22:19

标签: jquery promise

我有两个jquery ajax调用 所有通话完成后,我想获得两个返回的数据 出于示例目的,两者都返回“num” 这是我的代码:

    $(document).ready(function () {
    var allPromises = [
        $.ajax({url: '/ajax.php', method: 'post', data: {num: 1}}),
        $.ajax({url: '/ajax.php', method: 'post', data: {num: 2}})
    ];

    $.when.apply($, allPromises).done(function(returnData) {
        console.log(returnData);
    });
});

例如,我想得到返回值的总和 问题是我只从第一个请求中获取数据 如何在不保存全局变量的情况下执行此操作?

1 个答案:

答案 0 :(得分:1)

您获得每个承诺的返回值:

$.when.apply($, allPromises).done(function(returnData1, returnData2) {
    console.log(returnData1);
    console.log(returnData2);
});

请参阅https://api.jquery.com/jquery.when/

对于未知数量的ajax调用,您可以使用:

$.when.apply($, allPromises).then(function() {
    var objects = arguments; // The array of resolved objects as a pseudo-array
    ...
};