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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Вывод данных из коллбек функции $.getJSON() - jQuery

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
likesoft
Отправлено: 18 Апреля, 2016 - 22:39:25
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2014  
Откуда: Херсон


Помог: 0 раз(а)




Есть код:
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 ?
 
 Top
IllusionMH
Отправлено: 19 Апреля, 2016 - 14:19:14
Post Id



Активный участник


Покинул форум
Сообщений всего: 4254
Дата рег-ции: Февр. 2011  
Откуда: .kh.ua


Помог: 242 раз(а)




likesoft, вы ж в курсе что запрос на сервер это асинхронная операция?

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

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

(Отредактировано автором: 19 Апреля, 2016 - 14:51:21)

 
 Top
likesoft
Отправлено: 20 Апреля, 2016 - 17:21:12
Post Id



Новичок


Покинул форум
Сообщений всего: 23
Дата рег-ции: Апр. 2014  
Откуда: Херсон


Помог: 0 раз(а)




IllusionMH пишет:
likesoft, вы ж в курсе что запрос на сервер это асинхронная операция?

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

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


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

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

(Отредактировано автором: 20 Апреля, 2016 - 17:23:00)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB