Показать сообщение отдельно
  #1 (permalink)  
Старый 09.03.2013, 17:43
Интересующийся
Отправить личное сообщение для MatrixGru Посмотреть профиль Найти все сообщения от MatrixGru
 
Регистрация: 06.03.2013
Сообщений: 10

Асинхронные функции
Имеется функция получения адреса по координатам из Яндекс, карт.
Функция работает асинхронно. Не получается дождаться получения адреса, может можно, как то перевести в синхронный режим работы или дождаться получения адреса и после выйти из функции.

Вызов делаю следующим образом: strAddr=GetAddress([lat,lon])
Результат всегда: undefined (что логично, т.к. не успевает отработать функция)


//Функция получения адреса по заданным координатам
function GetAddress(coords){

ymaps.ready(function () { //Если API готов
// Отправим запрос на геокодирование
ymaps.geocode(coords).then(function (res) {
var names = [];
// Переберём все найденные результаты и
// запишем имена найденный объектов в массив names
res.geoObjects.each(function (obj) {
names.push(obj.properties.get('name'));
});
/*
Тут я могу получить адрес после успешного геокодирования
*/
addr=names;
});
});

/* Необходимо в качестве результата работы функции получить адрес*/
return addr;
}
Ответить с цитированием