Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2013, 21:00
Аватар для I'm_Lazy
Новичок на форуме
Отправить личное сообщение для I'm_Lazy Посмотреть профиль Найти все сообщения от I'm_Lazy
 
Регистрация: 06.05.2013
Сообщений: 9

Возврат результат из функции
На вход процедуры подаю ширину и долготу, но не могу понять как вернуть результат этот функции в основной блок программы, пробовала в блоке условия return, но ничего не выводится, как мне возвратить результат из функции?
<javascript>
function codeLatLng(a,b) {
    var ansv;
  $( function() {
var data = { lat:a, format:"json", lon:b };
$.get( "http://open.mapquestapi.com/nominatim/v1/reverse.php", data, success, "json" );
 
function success( geocodData ) {
var geo=geocodData.display_name;
if (geo != undefined) {
ansv = geo;
}
}
} );
  }</javascript>
Ответить с цитированием
  #2 (permalink)  
Старый 07.05.2013, 07:41
Аватар для tropiko
Аспирант
Отправить личное сообщение для tropiko Посмотреть профиль Найти все сообщения от tropiko
 
Регистрация: 23.06.2011
Сообщений: 44

function codeLatLng(a, b, callback){
	var data = {
		lat		: a,
		format	: "json",
		lon		: b
	};
	$.get(
		"http://open.mapquestapi.com/nominatim/v1/reverse.php",
		data,
		function(data, textStatus, jqXHR){
			if(data.hasOwnProperty('display_name')){
				if(typeof(callback) == 'function'){
					callback(false, data.display_name);
				}
			}else{
				callback(new Error("No results found"));
			}
		},
		"json"
	);
}

// Юзаем
codeLatLng( // С верными значениями
	'58',
	'88',
	function(err, geo){
		if(err) throw err;
		console.log(geo); // Тегульдетский район, Томская область, Siberian Federal District, Российская Федерация
	}
)

codeLatLng( // С неверными значениями
	'-1',
	'0',
	function(err, geo){
		if(err) throw err; // Uncaught Error: No results found
		console.log(geo);
	}
)


Еще почитайте учебник, что ли.
http://javascript.ru/basic/closure#o...hennoy-funkcii
Ответить с цитированием
  #3 (permalink)  
Старый 07.05.2013, 17:29
Аватар для I'm_Lazy
Новичок на форуме
Отправить личное сообщение для I'm_Lazy Посмотреть профиль Найти все сообщения от I'm_Lazy
 
Регистрация: 06.05.2013
Сообщений: 9

Сообщение от tropiko Посмотреть сообщение
function codeLatLng(a, b, callback){
	var data = {
		lat		: a,
		format	: "json",
		lon		: b
	};
	$.get(
		"http://open.mapquestapi.com/nominatim/v1/reverse.php",
		data,
		function(data, textStatus, jqXHR){
			if(data.hasOwnProperty('display_name')){
				if(typeof(callback) == 'function'){
					callback(false, data.display_name);
				}
			}else{
				callback(new Error("No results found"));
			}
		},
		"json"
	);
}

// Юзаем
codeLatLng( // С верными значениями
	'58',
	'88',
	function(err, geo){
		if(err) throw err;
		console.log(geo); // Тегульдетский район, Томская область, Siberian Federal District, Российская Федерация
	}
)

codeLatLng( // С неверными значениями
	'-1',
	'0',
	function(err, geo){
		if(err) throw err; // Uncaught Error: No results found
		console.log(geo);
	}
)


Еще почитайте учебник, что ли.
http://javascript.ru/basic/closure#o...hennoy-funkcii
А у меня возникает ошибка - Uncaught ReferenceError: $ is not defined
что с этим делать? почему ему не нравится доллар
Ответить с цитированием
  #4 (permalink)  
Старый 07.05.2013, 18:29
Аватар для tropiko
Аспирант
Отправить личное сообщение для tropiko Посмотреть профиль Найти все сообщения от tropiko
 
Регистрация: 23.06.2011
Сообщений: 44

Сообщение от I'm_Lazy Посмотреть сообщение
А у меня возникает ошибка - Uncaught ReferenceError: $ is not defined
что с этим делать? почему ему не нравится доллар
Если с этим у вас проблемы, то стоит начать изучение JavaScript с азов.

У вас два пути:
загуглить текст ошибки;
забить на программирование на JS и стать музыкантом, например.
Ответить с цитированием
  #5 (permalink)  
Старый 10.05.2013, 11:11
Аватар для I'm_Lazy
Новичок на форуме
Отправить личное сообщение для I'm_Lazy Посмотреть профиль Найти все сообщения от I'm_Lazy
 
Регистрация: 06.05.2013
Сообщений: 9

Сообщение от tropiko Посмотреть сообщение
Если с этим у вас проблемы, то стоит начать изучение JavaScript с азов.

У вас два пути:
загуглить текст ошибки;
забить на программирование на JS и стать музыкантом, например.
Спасибо за советы, tropiko. Но музыкантом мне не стать, а бросать программирование я подумаю над этим, от таких советов рушатся судьбы людей. А на счет вашего варианта вывода результата запроса, все работает, за что Вам огромное спасибо, однако с таким же успехом я могла вывести просто в текстовое поле, как делала это раньше и я по прежнему не могу использовать полученные результат в других функциях. Как я поняла, его можно сразу только выводить, а вот сохранить его допустим в массиве для дальнейших сравнений не получается.
Ответить с цитированием
  #6 (permalink)  
Старый 10.05.2013, 13:00
Аватар для vadim5june
Студент
Отправить личное сообщение для vadim5june Посмотреть профиль Найти все сообщения от vadim5june
 
Регистрация: 30.04.2012
Сообщений: 1,113

Сообщение от I'm_Lazy Посмотреть сообщение
На вход процедуры подаю ширину и долготу, но не могу понять как вернуть результат этот функции в основной блок программы, пробовала в блоке условия return, но ничего не выводится, как мне возвратить результат из функции?
Вы никак не вернете результат-потому что имеете дело с асинхронной функцией AJAX
callback функции-у Вас это sucess не могут ничего возвращать
Выход один запускайте нужную Вам функцию из success
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возврат значения функции после завершения анимации (затухания) grego jQuery 5 16.04.2013 22:25
Как вернуть результат из ajax внутри функции? Rooner AJAX и COMET 4 29.03.2013 19:15
Достать результат выполнения ajax-запроса из функции EvgeniyRRU AJAX и COMET 6 04.11.2011 19:32
Объясните пожалуйста как обратится к функции и получить результат zeraid AJAX и COMET 4 03.04.2011 14:55
Результат JS функции предать в RoR метод axon Серверные языки и технологии 0 23.02.2011 19:30