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, время: 00:44. |