Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вывод данных из коллбек функции $.getJSON() - jQuery
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » Вывод данных из коллбек функции $.getJSON() - jQuery

Страниц (1): [1]
 

1. likesoft - 18 Апреля, 2016 - 22:39:25 - перейти к сообщению
Есть код:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. var response;
  3. function getMembersCount(group_id) {
  4.      $.getJSON("https://api.vk.com/method/groups.getById?group_id=" +group_id+ "&fields=members_count&callback=?",
  5.              function(data) {
  6.                     return data.response[0]['members_count'];
  7.      });
  8. }
  9.  

если вывести результат работы через alert:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. response = getMembersCount('kpyta4ki')
  3. alert(response);
  4.  

то alert показывает undefined
Если сделать alert внутри callback функции, то все работает.
Как можно сделать чтобы результат работы присваивался переменной response ?
2. IllusionMH - 19 Апреля, 2016 - 14:19:14 - перейти к сообщению
likesoft, вы ж в курсе что запрос на сервер это асинхронная операция?

Результат будет только в коллбеке, а дальше уже реализовывать логику в колбеке или использовать другие техники борьбы с callback hell о которых подробно написано в интернетах.

Присвоить не проблема - внутри коллбека response = data.response[0]['members_count']; но обращаться за результататом в этой переменной нужно уже будет из функции колбека, либо другой функции вызванной в этом колбеке
3. likesoft - 20 Апреля, 2016 - 17:21:12 - перейти к сообщению
IllusionMH пишет:
likesoft, вы ж в курсе что запрос на сервер это асинхронная операция?

Результат будет только в коллбеке, а дальше уже реализовывать логику в колбеке или использовать другие техники борьбы с callback hell о которых подробно написано в интернетах.

Присвоить не проблема - внутри коллбека response = data.response[0]['members_count']; но обращаться за результататом в этой переменной нужно уже будет из функции колбека, либо другой функции вызванной в этом колбеке


Спасибо! В яваскрипте я новичек, не знал что асинхронный запрос вызывает такие трудности Закатив глазки

Теперь буду знать.
Решил вопрос построением логики в callback функции.
Спасибо Подмигивание

 

Powered by ExBB FM 1.0 RC1