JavaScript: функция возвращает undefined. Подскажите где я туплю
Добрый день.
JavaScript разработчики - откликнитесь)) Пишу некую картографическую программу. Связка javascript/qwebkit/qt. Использую yandex maps api 2.0. Есть функция, которая должна возвращать адрес по координатам, но она возвращает undefined. В джаваскрипте не силён, прошу помощи, почему такое поведение? Код:
function getAddressByCoordinates(lat, lon)что не так с областью видимости переменной res? |
походу У тебя изменяется рес тот что сидит в параметре а не в замыкании
var a = 1;
(function (a) {
a = 2;
})(a)
alert(a);
var a = 1;
(function () {
a = 2;
})()
alert(a);
|
Не совсем понимаю, как в моем случае правильно возвратить результат? Почему из этой функции-замыкания я не могу присвоить значение локальной переменной?
|
В смысле поменять название локальной переменной? Да пробовал, результат то же
|
вообщем убери res отсюда then(function (res) и будет вот так then(function ()
|
Цитата:
|
function getAddressByCoordinates(lat, lon)
{
var resss;
ymaps.geocode([lat, lon]).then(function (res)
{
var names = [];
res.geoObjects.each(function (obj)
{
names.push(obj.properties.get('name'));
});
res = names.reverse().join(', ');
resss = res;
console.log(ress); // выводится адрес
});
console.log(ress); // выводится undefined
return resss;
}
Rise, То же самое |
Вложений: 1
Вот исходник. Посмотрите пожалуйста.
Препарируемая функция в конце файла |
fluffyMan2000, ошибка в том, что вы пытаетесь работать с ассинхронными методами как с синхронными. Почитайте про ассинхронность js и всё встанет на свои места.
|
Цитата:
В нем что, затираются ГЛОБАЛЬНЫЕ переменные, когда функция завершается (пробовал в колбэке присваивать значение глобальное переменной, а потом вывести ее значение из другого места программы - undefined)? |
| Часовой пояс GMT +3, время: 02:24. |