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] } |
Цитата:
Зато вы его прекрасно затерли возвратом функции geocoder.geocode, так как решили использовать такое же имя переменной |
Да, эту ошибку уже понял. Спасибо. Но КАК мне вернуть ПОСЛЕ того, как выполниться функция?
|
Или вот, еще одна такая же трбла:
var postal_code = ""; getLatLng(city1, function(addr){ codeLatLng(addr, function(ZIP){ postal_code = ZIP; }); }); alert (postal_code); Как алерт выполнить после функций? Алерт это просто пример, мне надо дальше работать с переменной postal_code. |
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); } |
Спасибо за классный ответ! Теперь разобрался. Скажу честно, матчасть я вообще не читал, так что часто вот на такой фигне стопарюсь. Все никак руки не дойдут. Может что посоветуете из литературы? Чтобы не совсем для чайников.
|
Цитата:
Цитата:
От себя книгу посоветовать не могу, так как учился в разнабой, в частности по статьям с данного сайта. Советую заглянуть в цкил статей про Ajax |
Часовой пояс GMT +3, время: 22:39. |