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