我想用Facebook JavaScript API來計算朋友的性別。問題是FB SDK基於異步調用,因此在所有查詢完成後,我無法觸發。Facebook JavaScript 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
對已完成的查詢數使用計數器,並在增加所述計數器之後調用在每個查詢的回調中檢查此計數器的函數。計數器達到查詢數量==回調函數執行某些操作。 – CBroe