【发布时间】:2013-09-16 11:01:14
【问题描述】:
我有一个问题,我必须调用多个 AJAX 请求,我想编写一个回调,当所有请求都完成后,该回调只会被调用一次。我可以有多个 ajax 调用,所以我可能不喜欢像 here 那样将这些 Ajax 调用链接到上一个回调的回调中。
所以我尝试了这样的事情 -
var requestCompletedArray = [];
/* assuming i have `n` ajax calls to make */
for(var i = 0; i < n; i++) {
ajaxCall(/* some url, data etc */, callback);
}
/* my callback definition */
function callback(data) {
if(requestCompletedArray.length < n-1) {
requestCompletedArray.push(data.status);
return;
} else if(requestCompletedArray.length === n-1) {
//do something, all requests are completed
} else {
return;
}
}
我对这个解决方案感觉不太好。大家怎么看?如果这不是一个好的解决方案,我可以为解决这个问题提供一些好的建议吗?
【问题讨论】:
标签: javascript ajax