3

foursquare 情報を取得する each ループがあります。次のようになります。

$.getJSON('https://api.foursquare.com/v2/venues/search?search_string_here',    
 function(data) {
     $.each(data.response.venues, function(i,venues){
          var content = foursquare stuff;
          $(content).appendTo("#fourSquare");
     });
});

各ループが終了した後、関数を開始する必要があります。これは、各ループの後に配置すると機能します。

$( "#fourSquare" ).promise().done(function() {
    //do stuff
});

私はよく知りませんpromise-奇妙なことは、それがANYセレクターで動作することです。2 つの質問:

1)これは、各コールバックについて行う最善の方法ですか? 2) ここで正しいセレクターは何ですか? each は既存の要素を繰り返し処理していないため、何を「約束」すればよいかわかりません

4

2 に答える 2

3

$.getJSON使用できる promise を返します。これは、コールバックのに呼び出されます。

var $ajax = $.getJSON('url', function(data){
    // your $.each
});

$ajax.done(function(){
    // do stuff
});
于 2013-07-23T19:16:55.460 に答える
0

によって返される promise を使用する必要がありますgetJSON

$.getJSON(...)
    .then(function() { $.each(...); })
    .then(function() { ... });
于 2013-07-23T19:17:31.240 に答える