Страница 1 из 1

Вывод информации о пользователе, users.get -> undefined

Добавлено: 14 ноя 2012, 22:47
Krubbs
Собственно, вот код:

Код: Выделить всё

            VK.init(function()                {                    var parts=document.location.search.substr(1).split("&");                    var flashVars={}, curr;                    for (i=0; i<parts.length; i++)                     {                        curr = parts[i].split('=');                        flashVars[curr[0]] = curr[1];                    }                    var viewer_id = flashVars['viewer_id'];                    alert(viewer_id);                    var user_name;                    VK.api("users.get",{uids:viewer_id} ,function (data)                    {                        user_name = data.response.first_name;                                            });                    alert(user_name);                });
Первый алерт срабатывает верно, выдавая ID юзера, просматривающего приложение. Однако с функцией users.get происходит что то невероятное: второй алерт упорно выдает мне Undefined, хотя код вроде как написан верно... Какие могут быть предположения, в чем косяк и как мне вытянуть имя и фамилию?

Re: Вывод информации о пользователе, users.get -> undefined

Добавлено: 15 ноя 2012, 00:24
Serge
Krubbs

Код: Выделить всё

            VK.init(function()                {                    var parts=document.location.search.substr(1).split("&");                    var flashVars={}, curr;                    for (i=0; i<parts.length; i++)                     {                        curr = parts[i].split('=');                        flashVars[curr[0]] = curr[1];                    }                    var viewer_id = flashVars['viewer_id'];                    alert(viewer_id);                    var user_name;                    VK.api("users.get",{uids:viewer_id} ,function (data)                    {                        user_name = data.response[0].first_name;                        alert(user_name);                    });                }); 
А вот так сработает правильно.
Причина в том, что яваскрипт выполняет код синхронно, алерт запустится раньше, чем от вк будут получены данные.

UPD: Еще вроде data.response[0].first_name

Re: Вывод информации о пользователе, users.get -> undefined

Добавлено: 15 ноя 2012, 09:17
Krubbs
Спасибо огромное, все заработало!

P.S: сказочный яваскрипт... как тяжко с ним после сишарпа