我在循环中设置了一个ajax调用。
while (true) {
doAjax("GET", "api", "jsonp");
if (startDate.valueOf() == endDate.valueOf()) {
break;
}
startDate.setDate(new Date(startDate.getDate() + 1));
}
ajax函数定义为
function doAjax(methodType, url, responseDataType) {
var options = {
type: methodType,
url: url,
dataType: responseDataType,
};
$.ajax(options).done(function (data) {
postData.push(data);
}).fail(function (response) {
console.log(response);
});
};
目前,当所有成功通话完成后,我终于有一个数组'postData',其中包含所有通话的结果。
现在我想知道在所有ajax调用get完成之后如何访问该变量。正如你可以看到循环中发生的一切,我怎么能弄清楚最后的ajax调用是什么时候。
有什么建议吗?
答案 0 :(得分:0)
除了处理成功(完成)或错误(失败)之外,无法知道异步调用何时完成。因此,而不是在doAjax()函数内部处理done()/ fail(),只需返回一个promise:
return $.ajax(options); //remove the done() and fail() code
然后在调用doAjax函数的函数中处理done()和fail()。
doAjax("GET", "api", "jsonp").done(...).fail(...);