【发布时间】:2013-04-14 17:13:19
【问题描述】:
我正在创建一个应用程序,该应用程序根据用户从表单中选择的名称显示推文。选择被传递给“getTweets”函数,如下所示:
function getTweets(selections) {
var holdTweets = [];
$.each( selections, function(){
$.ajax({
url: 'http://api.twitter.com/1/statuses/user_timeline/'+this.id+'.json?callback=?',
dataType: 'jsonp',
success: function(data) { holdTweets.push(this); },
error: function() { console.log('something went wrong'); }
});
});
}
在所有 AJAX 请求完成后,我想在解析 JSON 之前对 holdTweets 数组进行排序。
起初一切正常:AJAX 请求正在返回 JSON,并且正在填充 holdTweets 数组。是否可以在进行排序之前检查所有 AJAX 请求是否已完成?如果是这样,怎么做?
提前致谢!
【问题讨论】:
-
火箭科学在哪里?记住您发出了多少请求,以及完成了多少请求。当您发出所有请求并且已完成的请求数量与之匹配时,瞧,它们都已完成。
-
只计算选择的长度,并添加一个setInterval来检查holdTweets中AJAX调用的长度=选择的长度
-
不需要设置间隔,使用完整回调即可。
标签: jquery ajax json twitter jsonp