Я использую FB apis и у меня проблемы с работой этого кода:
DoSomething()
{
var validFriend = [];
EnumerateFriends(function(result)
{
for every friend in result
{
QuerySingleFriend(result.friendId, function(result)
{
...
validFriend += thisguy;
...
});
}
});
writeout("Your valid friends are: "+validFriend);
}
EnumerateFriends(callback)
{
FB.api("give me my friends", callback);
}
QuerySingleFriend(friendId, callback)
{
FB.api("give me this guy", callback);
}
Вышеприведенный псевдокод довольно прост и понятен, но оператор «writeout» выполняется до того, как все закончится, из-за асинхронного характера функций обратного вызова fb apis.
Есть идеи, как это синхронизировать? Я пытался с глобальными переменными, но это не элегантное и не практическое решение