我正在尝试使用 Facebook JavaScript API 计算朋友的性别。问题是 FB SDK 基于异步调用,所以在完成所有查询后我无法触发操作。
例如,这是计算我有多少男性/女性朋友的代码。但是最后一行不起作用,因为它可以在 FB.api() 仍在运行时执行。
处理这个问题的最佳方法是什么?
FB.api('/me/friends', function(response) {
if(response.data) {
var genderCount = {};
$.each(response.data, function(index, friend) {
FB.api('/' + friend.id, function(frienddata) {
if (frienddata.gender) {
if (genderCount[frienddata.gender]) {
genderCount[frienddata.gender]++;
}
else {
genderCount[frienddata.gender]=1;
}
}
});
});
});
// later do something with genderCount
alert('I have ' + genderCount['male'] + ' male friends'); // won't work