我正在尝试使用Promise进行几次 AJAX 调用(假设为 2)。基本上我希望能够将两个响应合并在一起,对它们作为一个整体进行一些分析,然后吐出一个响应。现在,我有:
var responseArray = [];
for (var i=0; i<letsSayTwo; i++) {
responseArray.push(someAjaxCall(data));
};
responseArray.done(function(response) {
var spit = someAnalysis(response);
console.log(spit);
});
responseArray.fail(function(response) {
console.log('fail');
});
就目前而言,我在控制台中收到“未捕获的类型错误:对象 [对象数组] 没有方法‘完成’”错误。我认为我不能使用这种方法是否正确?我考虑使用以下来自 ( http://gregfranko.com/blog/jquery-best-practices/ )的代码,但我似乎无法得到我需要的响应。
$.when.apply(this, responseArray).then(function(response) {
console.log(response);
});
相反,我得到的是 [response, "success", response] 其中第一个响应是 AJAX 调用之一的正确返回响应,最后一个响应是实际调用本身。我应该如何从两个 AJAX 调用中获得正确的响应?
我希望这一切都有意义。谢谢!