@iDrugov
Хуже глупых вопросов только глупые ответы.

Как записать response в глобальную переменную из API VK?

У меня явная проблемы с областью видимости, ибо я не понимаю, как вывести ответ в глобальную переменную, чтобы использовать её дальше ) Не хочу обрабатывать данные только внутри функции метода.

i = VK.api() - конечно же не работает.

var i = 0;

VK.api('groups.getById', {group_id: 'live'}, function (r){
	i = r.response[0].id;
	return i;
});

alert(i); // например, не суть.
  • Вопрос задан
  • 369 просмотров
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
У вас проблема с асинхронностью.
var i = 0;

console.log(1, 'запрос отправляется')
VK.api('groups.getById', {group_id: 'live'}, function (r){
  i = r.response[0].id;
  console.log(4, i); // здесь сработает правильно, но только после ответа с сервера
  return i;
});

console.log(2, 'ответ на запрос еще не пришел, а вы уже пытаетесь использовать переменную i')
console.log(3, i); // выведет 0


UPD: по поводу
i = VK.api() - конечно же не работает.

У вас return i; внутри анонимной функции, которая используется как callback параметр для VK.api()
Что именно возвращает VK.api() можно посмотреть в их исходниках или документации. Может и вообще ничего не возвращает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
25 нояб. 2024, в 15:52
3000 руб./за проект
25 нояб. 2024, в 15:43
1500 руб./за проект