как дождаться ответа от API ВКОНТАКТЕ?

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
mpw
Сообщения: 4
Зарегистрирован: 30 ноя 2011, 09:49

как дождаться ответа от API ВКОНТАКТЕ?

Сообщение mpw »

ничего понять не могу...
есть вот такой кусок скрипта

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

 var user_info function get_profile() {        VK.api("getProfiles", {        uids : viewer_id,        fields : "photo,country,city"    }, function(user) {        user_info = user.response[0];        alert(2);       })}) alert(1);get_profile();alert(3); 

В какой последовательности должны выйти сообщения? по идее 1,2,3, НО! на практике выходит 1,3,2 т.к. alert(3) не дожыдается завершения функции...
Как дождаться? в Jquery ясное дело можно сделать
так: jQuery.ajaxSetup({async:false, timeout: 5000});

и работа будет последовотельной..... как этого добиться при работе с АПИ вКонтакте??
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение Alazaur »

Вот у Вас alert(2) как раз срабатывает после ответа от API. По аналогии с ним и делайте
mpw
Сообщения: 4
Зарегистрирован: 30 ноя 2011, 09:49

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение mpw »

Alazaur писал(а):Вот у Вас alert(2) как раз срабатывает после ответа от API. По аналогии с ним и делайте
Нет уж! так не пойдет, мне нужна именно такая последовательность.
Это только единичный пример, в дальнейшем будет много таких ситуаций, а в том виде как вы предлагаете - будет не удобно...
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение Александр »

mpw
Это JavaScript. У него свои особенности. Необходимо соблюдать последовательность вложением функций по аналогии с alert(2);
Функция get_profile() может выполняться сколько угодно времени и timeout не поможет.
Если такой вариант неудобен в реализации на javascript, то нужно пересмотреть логику реализации.
Kilr0y
Сообщения: 1
Зарегистрирован: 17 окт 2011, 18:56

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение Kilr0y »

Я делал через внешнюю переменную + setTimeout
mpw
Сообщения: 4
Зарегистрирован: 30 ноя 2011, 09:49

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение mpw »

Для того, чтобы решить эту проблему Переделал всё на PHP
Slastkiwi
Сообщения: 31
Зарегистрирован: 02 дек 2011, 11:56

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение Slastkiwi »

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

     VK.loadParams(document.location.href);    var viewer_id = VK.params.viewer_id;         alert(viewer_id);        var ddd="ddd";    vk.api("photos.getAlbumsCount", {uid: viewer_id},           function (data)             { ddd=data.response.length;     } );        alert(ddd);  
Второго алерта нету. Что не так?
Slastkiwi
Сообщения: 31
Зарегистрирован: 02 дек 2011, 11:56

Re: как дождаться ответа от API ВКОНТАКТЕ?

Сообщение Slastkiwi »

Я понял.
Ответить