我正在使用Facebook API制作网页。
我想在网页上显示用户的 friend 。
所以我这样编码

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函数将在许多其他函数中使用。

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

最佳答案

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);

关于javascript - 如何等待javascript函数响应?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12065479/

10-14 11:59