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

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

Добавлено: 30 ноя 2011, 10:00
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});

и работа будет последовотельной..... как этого добиться при работе с АПИ вКонтакте??

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

Добавлено: 30 ноя 2011, 14:11
Alazaur
Вот у Вас alert(2) как раз срабатывает после ответа от API. По аналогии с ним и делайте

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

Добавлено: 01 дек 2011, 03:12
mpw
Alazaur писал(а):Вот у Вас alert(2) как раз срабатывает после ответа от API. По аналогии с ним и делайте
Нет уж! так не пойдет, мне нужна именно такая последовательность.
Это только единичный пример, в дальнейшем будет много таких ситуаций, а в том виде как вы предлагаете - будет не удобно...

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

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

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

Добавлено: 05 дек 2011, 12:03
Kilr0y
Я делал через внешнюю переменную + setTimeout

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

Добавлено: 06 дек 2011, 03:30
mpw
Для того, чтобы решить эту проблему Переделал всё на PHP

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

Добавлено: 09 дек 2011, 03:24
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);  
Второго алерта нету. Что не так?

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

Добавлено: 09 дек 2011, 14:35
Slastkiwi
Я понял.