如何等待javascript函数响应?

时间:2012-08-22 02:08:47

标签: javascript facebook function wait

我正在使用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的响应。而且我不想在getFriends函数中找到for循环,因为getFriends函数将用于许多其他函数。

有没有等待函数响应的解决方案?

1 个答案:

答案 0 :(得分: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);