我正在使用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函数将用于许多其他函数。
有没有等待函数响应的解决方案?
答案 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);