FacebookJavaScriptAPIを使用して友達の性別をカウントしようとしています。問題は、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