Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
1

Как присвоить значение переменной из функции?

05.02.2018, 11:15. Показов 3516. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Я пытаюсь передать в переменную y результат работы getJSON - т.е. val.
Как мне это сделать?
Код рабочий, alert(val) показывает.
Javascript
1
2
3
4
5
6
7
8
9
var y;
//y=
$.getJSON('actions.php?get_live_data', function(live_data) {
$.each(live_data, function(key, val) {
//y=val; так не работает
//alert(val); //выводит число т.е. моя функция работает
//return val; вообще не работает, тк. скорее всего и не предусмотрено в getJSON
});});
//y=val; и так не работает
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.02.2018, 11:15
Ответы с готовыми решениями:

Как php переменной присвоить значение переменной javascript?
есть переменная php как ей присвоить значение переменной javascript?

Не получается присвоить значение переменной в функции
Недавно начал изучать Ajax, но без помощи JQuery. Есть вот такая функция: function ajaxGet(url,...

Как присвоить возвращаемое значение функции переменной?
double sine(int index, int frequency) { return (100*sin(index*frequency)); } вопрос: как...

Возвращаемое значение функции присвоить значению переменной
Здравствуйте! Подскажите как мне полученное значение функции присвоить к значению переменной, т.е....

3
Эксперт JS
2454 / 1761 / 624
Регистрация: 11.07.2016
Сообщений: 4,051
05.02.2018, 11:36 2
Метод $.getJSON() асинхронный. Это означает, что основной поток программы продолжает исполняться, не дожидаясь коллбека метода. То есть
Javascript
1
2
3
4
5
var result;
$.getJSON(url, function(data) {
  result = data;
});
alert(result); // Вернёт undefined
Программа не будет дожидаться ответа от сервера и продолжит исполняться дальше. Поэтому вы будете получать undefined, если попытаетесь обратиться к переменным, которые задаются в коллбеке, только если ваш сервер не ответит с космической скоростью.
1
707 / 309 / 191
Регистрация: 05.03.2015
Сообщений: 822
05.02.2018, 11:45 3
Javascript
1
2
3
4
5
6
7
8
var a;
 
$.getJSON('actions.php?get_live_data', function(data) {
 a = data
console.log(a) // ваши данные, ошибки не будет
})
 
console.log(a) // undefined
В последней строке всегда будет undefined потому-что вы выполняете асинхронный запрос, который не блокирует выполнение следующего за ним кода. Соответственно во время выполнения второго console.log ваш getJSON еще не отработал (ждет ответа сервера).

Если вам нужно что-то делать в ответом из getJSON, передайте в его колбек свою функцию, чтоб в результате было что-то типа:
Javascript
1
2
3
4
5
6
7
8
function handleResponce(data){
  // handle data from api
  console.log(data)
}
 
$.getJSON('https://dog.ceo/api/breeds/list/all', function(data) {
 handleResponce(data)
})
Или с использованием промисов (будет полезно если у вас назревает callback hell, от которого вы хотите избавиться)
Javascript
1
2
3
4
5
6
function handleResponce(data){
  // handle data from api
  console.log(data)
}
 
$.getJSON('https://dog.ceo/api/breeds/list/all').then(data => handleResponce(data))
1
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,098
05.02.2018, 12:52  [ТС] 4
Спасибо, кажется понял. Часть кода переместил внутрь getJSON.
Вроде работает.

Javascript
1
2
3
4
5
6
7
$.getJSON('actions.php?get_live_data', function(live_data) {
$.each(live_data, function(key, val) {
 
var y; //и тут весь код что связан с y
y=val; //Как вариант
 
});});
0
05.02.2018, 12:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2018, 12:52
Помогаю со студенческими работами здесь

Как присвоить значение переменной, исходя из значения другой переменной?
Всем привет. Нужна помощь. Есть переменная, например "month" которая может принимать значения...

Как переменной описанной в программе присвоить значение переменной в Conditional Compilation Arguments?
Kak mozhno peremennij opisanoj v programme prisvoit` znachenie peremennoj v Conditional Compilation...

Как присвоить значение переменной если значение позже устанавливается в цикле?
Кратко: if($_SESSION != ""){ $row = mysql_num_rows(mysql_query("...")); if($row > 0) $panel...

Как присвоить значение переменной?
Вот так вот вот я сохраняю на сервере файл из формы (проверьте его правильно ли?) $upfile = '1/';...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru