我在Javascript中遇到同步問題。下面的代碼。當我撥打電話,以獲得共同的朋友,雖然我的功能仍然通過API回調填充陣列的"Quite a bunch: 0"
印刷發生的以前印刷 - console.log(friendID +" -> " + mutualfriends.data.length);
Facebook Api呼叫準備
我知道這一定是一個回調/非同步問題,但我不知道如何處理它。我正在填充數組,因爲一個原因 - 需要填充下一部分。
代碼:
function getMutualFriends(friendID)
{
//console.log(response.data[i].id);
try{
FB.api('/me/mutualfriends/'+friendID, function(mutualfriends) {
//console.log(mutualfriends);
//console.log(mutualfriends.data.length);
console.log(friendID +" -> " + mutualfriends.data.length);
mutualFriendsList.push([friendID,mutualfriends.data.length]);
});
}
catch(err){
console.log('error caught: ' +err);
}
}
function getFriendsList()
{
FB.getLoginStatus(function(response){
FB.api('/me/friends', function(response) {
for(i=0; i<response.data.length;i++)
{
var friendID = response.data[i].id;
console.log(friendID);
friendsList.push(friendID);
}
console.log('Interesting, we gathered: '+friendsList.length+' friends,');
console.log('lets check mutual friends now');
for(j=0; j<friendsList.length;j++)
{
getMutualFriends(friendsList[j]);
}
console.log('Quite a bunch: ' + mutualFriendsList.length);
});//friends
});
}
乾杯很坦率,非常感謝! – malteseKnight