Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.07.2015, 11:18
Новичок на форуме
Отправить личное сообщение для Majax Посмотреть профиль Найти все сообщения от Majax
 
Регистрация: 16.07.2015
Сообщений: 6

Как передать значение переменной из вложенной функции
Приветствую форумчан!
Знания javascript довольно поверхностные, поэтому не пинайте сильно
Есть такая функция:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true"></script>
<script type="text/javascript">

   var latlng;  //тут объявляю глобальную переменную
	function codeAddress(address) {          
	    geocoder = new google.maps.Geocoder();
            geocoder.geocode( { 'address': address}, function (results) {
            myylocation = results[0].geometry.location;
            lat = myylocation.lat();
            lng = myylocation.lng();
            window.latlng = lat +','+ lng; 
            alert(latlng);//в этом месте значение переменной считается и существует
            });
            return latlng;  //а сюда не попадает, undefined        	
	}

  alert(codeAddress('moskva')); //undefined

</script>

результат выполнения: undefined
Подскажите как вытащить значение переменной lanlng из вложенной функции? что не так делаю?
Ответить с цитированием
  #2 (permalink)  
Старый 16.07.2015, 11:23
Новичок на форуме
Отправить личное сообщение для Majax Посмотреть профиль Найти все сообщения от Majax
 
Регистрация: 16.07.2015
Сообщений: 6

еще момент. Когда проверяю работу функции здесь wisdomweb.ru/editor/wweditor.php?fname=js_func2 то первый вызов undefined, а второй и последующие выводит значение, вообще запутался
Ответить с цитированием
  #3 (permalink)  
Старый 16.07.2015, 11:38
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

еще один

Как думаешь, зачем в 7-й строке объявляется функция?
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #4 (permalink)  
Старый 16.07.2015, 11:46
Новичок на форуме
Отправить личное сообщение для Majax Посмотреть профиль Найти все сообщения от Majax
 
Регистрация: 16.07.2015
Сообщений: 6

Сообщение от nerv_ Посмотреть сообщение
еще один

Как думаешь, зачем в 7-й строке объявляется функция?
появляются смутные подозрения что для того чтобы нельзя было вытащить
Ответить с цитированием
  #5 (permalink)  
Старый 16.07.2015, 12:02
Новичок на форуме
Отправить личное сообщение для mbav Посмотреть профиль Найти все сообщения от mbav
 
Регистрация: 23.11.2014
Сообщений: 6

Majax,
я тоже не очень шарю, но думаю, что код где return latlng на 14 строке выполняется быстрее чем обработается запрос в гугл мапс внутри функции geocode, поэтому сначала выводит undefined, а потом выбивает результат
alert(latlng);//в этом месте значение переменной считается и существует

Последний раз редактировалось mbav, 16.07.2015 в 12:08.
Ответить с цитированием
  #6 (permalink)  
Старый 16.07.2015, 12:12
Новичок на форуме
Отправить личное сообщение для Majax Посмотреть профиль Найти все сообщения от Majax
 
Регистрация: 16.07.2015
Сообщений: 6

mbav, ага, вот нашел по проблеме stackoverflow.com/questions/4314270/understanding-geocoding-in-javascript
думаю сейчас как применить к своему случаю.
Ответить с цитированием
  #7 (permalink)  
Старый 16.07.2015, 12:20
Новичок на форуме
Отправить личное сообщение для mbav Посмотреть профиль Найти все сообщения от mbav
 
Регистрация: 23.11.2014
Сообщений: 6

Majax,
Можете попробовать как то запихнуть функцию в setInterval(func, время в мс) а потом как узнаете что ответ от сервера пришел отключить повторение функции через clearInterval();

interval = setInterval(function () {
// всякая фигня

if(latlng) { // если latlng имеет какое то значение 
  clearInterval(interval);
}

}, 1000);


Может как-то так
Ответить с цитированием
  #8 (permalink)  
Старый 16.07.2015, 13:20
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

Область видимости переменной

ЧаВО - часто задаваемые вопросы (faq)
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук
Ответить с цитированием
  #9 (permalink)  
Старый 16.07.2015, 15:13
Новичок на форуме
Отправить личное сообщение для Majax Посмотреть профиль Найти все сообщения от Majax
 
Регистрация: 16.07.2015
Сообщений: 6

nerv_, спасибо конечно. Но видно мой уровень колеблется около ноля. Пока ничего не получается...
Ответить с цитированием
  #10 (permalink)  
Старый 16.07.2015, 16:37
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,138

такая же тема и их сотни если не тысячи на этом сайте.
Очередность выполнения событий
ajax и функция "возврата"
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как передать значение select из формы в переменную javascript 2Step Общие вопросы Javascript 2 11.03.2014 23:11
Как передать значение переменной с ява на php wadim Общие вопросы Javascript 1 06.02.2014 00:19
как передать значение переменной в IFRAME в поле формы JS-ом из самой страницы? DeUre Общие вопросы Javascript 14 17.12.2013 16:37
Передать значение этой переменной скрипту пхп не обновляя страницы jei Общие вопросы Javascript 10 01.03.2013 18:14
как передать это значение в jquery qwertycal Общие вопросы Javascript 4 30.01.2013 18:12