1

我正在创建一个应用程序,该应用程序根据用户从表单中选择的名称显示推文。选择被传递给“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 请求是否已完成?如果是这样,怎么做?

提前致谢!

4

2 回答 2

0

多谢你们。我已经这样做了,它工作正常。

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);
                if(holdTweets.length === selections.length) { 
                    sortFunction(holdTweets); 
                }
            },
            error: function() { console.log('something went wrong'); }
        });

    });
}
于 2013-04-21T21:26:49.657 回答
0

当您使用 jQuery 时,ajaxStop方法允许您注册一个处理程序,以便在所有 Ajax 请求完成时调用。

于 2014-02-20T21:18:03.387 回答