2

我正在使用 facebook API 制作网页。
我想在网页中显示用户的朋友。
所以我这样编码

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 的响应之前 for 循环过程。而且我不想在 getFriends 函数中定位 for 循环,因为 getFriends 函数将在许多其他函数中使用。

那么等待函数的响应有什么解决方案吗?

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 回答