Проблемы с получением имен из Facebook - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть список номеров идентификаторов пользователей Facebook из ответа xml, и все, что я хочу сделать, это написать html, который помещает их фотографию рядом с их именем.К сожалению, у меня странная проблема:

var friendList = "";
$(xml).find("id").each(function ()
{
    var tId = $(this).text();
    var tUrl = "/" + tId;
    var perName = "";
    FB.api(tUrl, function(response) {
        perName += response.name;
    });
    alert(perName);
    friendList += "<div class=\"picSpacer\"><img src=\"https://graph.facebook.com/"+tId+"/picture/?type=large\" class=\"friendDIV\" /><div class=\"nameBox\">"+perName+"</div></div>";
});

С этим кодом это работает, но если я удаляю предупреждение, оно не работает.Предупреждение выскакивает не определено.Это как если бы к строке perName нужно было получить доступ один раз, прежде чем она фактически будет содержать имя пользователя.Я не понимаю, как это может быть.

1 Ответ

2 голосов
/ 23 декабря 2010

это просто. FB.api () выполняет асинхронный запрос, когда он закончен

function(response) { 
    //do entire DOM manipulation here
}

вызывается. Теперь alert () достаточно долго откладывает выполнение, так что обратный вызов получает calland и определяется perName.

Просто переместите код манипуляции DOM в обратный вызов, чтобы убедиться, что у вас действительно есть ответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...