我有两个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);
});
});
例如,我想得到返回值的总和 问题是我只从第一个请求中获取数据 如何在不保存全局变量的情况下执行此操作?
答案 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
...
};