2

FacebookAPIを使用してWebページを作成しています。
ユーザーの友達をウェブページに表示したい。
だから私はこのようにコーディングします

function showFriends(){
    var result = getFriends();
    for(var i=0; i<result.length; i++){
        //show friends in webpage
    }
}

function getFriends(){
    FB.api( {
    method: 'fql.query', 
    query: 'SELECT uid, name, pic_square  FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())'}, 
    function(response) {
    return response;
        }
    );
}

問題はこれです:getFriends関数は少し時間がかかるので、getFriendsの応答を取得する前にループプロセスを実行します。また、getFriends関数は他の多くの関数で使用されるため、getFriends関数でforループを見つけたくありません。

では、関数の応答を待つための解決策はありますか?

4

1 に答える 1

5

showFriends関数をコールバックとして渡します。

function showFriends(result){
    for(var i=0; i<result.length; i++){
        //show friends in webpage
    }
}

function getFriends(callback){
    FB.api({
      method: 'fql.query', 
      query: 'SELECT uid, name, pic_square  FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = me())'
    }, 
    callback
  );
}

getFriends(showFriends);
于 2012-08-22T02:12:32.540 に答える