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 に答える