Javascript.RU

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

return из подфунукции
Есть функция:
function getState(zipcode) {
    var state = "N/A";
    state = geocoder.geocode( { 'address': zipcode}, function (result, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            state = result[0]['address_components'][component]['short_name'];
                [B]return state;[/B]
        }
    });
}

Тут он, как я понимаю, возвращает в подфункцию
function (result, status) {}


Как мне вернуть state в главной функции?
Так не работает
function getState(zipcode) {
    var state = "N/A";
    state = geocoder.geocode( { 'address': zipcode}, function (result, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            state = result[0]['address_components'][component]['short_name'];
        }
    });
    [B]return state;[/B]
}
Ответить с цитированием
  #2 (permalink)  
Старый 08.03.2012, 12:22
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от blax
Так не работает
Естественно, ведь во втором примере вы делаете return ДО того, как выполнилась function (result, status) , и на этот момент state еще не был получен с сервера.
Зато вы его прекрасно затерли возвратом функции geocoder.geocode, так как решили использовать такое же имя переменной
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2012, 15:43
Интересующийся
Отправить личное сообщение для blax Посмотреть профиль Найти все сообщения от blax
 
Регистрация: 20.09.2011
Сообщений: 24

Да, эту ошибку уже понял. Спасибо. Но КАК мне вернуть ПОСЛЕ того, как выполниться функция?
Ответить с цитированием
  #4 (permalink)  
Старый 08.03.2012, 16:32
Интересующийся
Отправить личное сообщение для blax Посмотреть профиль Найти все сообщения от blax
 
Регистрация: 20.09.2011
Сообщений: 24

Или вот, еще одна такая же трбла:
var postal_code = "";
    getLatLng(city1, function(addr){
        codeLatLng(addr, function(ZIP){
            postal_code = ZIP;
        });
    });
    alert (postal_code);


Как алерт выполнить после функций?
Алерт это просто пример, мне надо дальше работать с переменной postal_code.
Ответить с цитированием
  #5 (permalink)  
Старый 08.03.2012, 23:40
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

blax,
Привыкайте к асинхронному стилю программирования
Если вы хотите работать с переменной вычисляемой в результате выполнений асинхронной функции, то код работающий с ней должен вызыватся колбеке, либо позже
var postal_code = "", work_with_postal_code;
    getLatLng(city1, function(addr){
        codeLatLng(addr, function(ZIP){
            postal_code = ZIP;
            work_with_postal_code(postal_code);
        });
    });
work_with_postal_code = function(postal_code) {
    alert (postal_code);
}
Ответить с цитированием
  #6 (permalink)  
Старый 09.03.2012, 13:55
Интересующийся
Отправить личное сообщение для blax Посмотреть профиль Найти все сообщения от blax
 
Регистрация: 20.09.2011
Сообщений: 24

Спасибо за классный ответ! Теперь разобрался. Скажу честно, матчасть я вообще не читал, так что часто вот на такой фигне стопарюсь. Все никак руки не дойдут. Может что посоветуете из литературы? Чтобы не совсем для чайников.
Ответить с цитированием
  #7 (permalink)  
Старый 10.03.2012, 00:42
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

Сообщение от blax
Может что посоветуете из литературы?
Вверху сайта есть навигация
Цитата:
Форум Учебник Книги Блоги Стандарт языка Мастер-классы по JavaScript Справочник
Статьи Тест знаний Аналоги функций PHP Песочница JS.Talks Курсы javascript
Материалов для обучения достаточно.
От себя книгу посоветовать не могу, так как учился в разнабой, в частности по статьям с данного сайта. Советую заглянуть в цкил статей про Ajax
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Классы в javascript harmony. Mахmахmахimus Оффтопик 4 16.03.2012 12:17
Наболевший this. Не могу понять Harvey Общие вопросы Javascript 6 19.08.2011 17:30
Свойства посредством полиморфных функций tenshi Ваши сайты и скрипты 0 18.03.2010 17:12
Проблема с if...else parzh-junior Элементы интерфейса 18 04.12.2009 17:17
Модуль для работы с геометрией окна JSprog Библиотеки/Тулкиты/Фреймворки 25 31.08.2009 12:54