我正在尝试使用 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