如何等待javascript函数响应

How to wait for javascript function response?

本文关键字:javascript 函数 响应 等待 何等待      更新时间:2023-09-26

我正在使用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函数需要一点时间,所以在得到getFriend斯的响应之前进行循环处理。我不想在getFriends函数中查找for循环,因为getFriend斯函数将在许多其他函数中使用。

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

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