Показать сообщение отдельно
  #15 (permalink)  
Старый 14.11.2013, 11:20
Интересующийся
Отправить личное сообщение для fluffyMan2000 Посмотреть профиль Найти все сообщения от fluffyMan2000
 
Регистрация: 13.11.2013
Сообщений: 11

проблема была в том, что действия надо было произвести не в js, а в с++ программе, вызвавшей js скрипт. в общем, проблема решена. как было сказано выше, я не учитывал то, что функция работает асинхронно. поэтому когда я возвращал значение из getAddressByCoordinates(), то переменной не было присвоено значение, так как асинхронная функция ничего не присвоила переменной еще. она присвоит потом, когда уже будет вызван return.

в общем решилось все высылкой сигнала с нужным параметром-адресом (в Qt есть такая полезная вещь) из асинхронной функции в с++ программу.

function getAddressByCoordinates(lat, lon, pointId)
{	 		
    ymaps.geocode([lat, lon]).then(function (res) 
    {
        var names = [];

        res.geoObjects.each(function (obj) 
	{
             names.push(obj.properties.get('name'));
        });
					
	jsObject.address(names.reverse().join(', '), pointId);
    });		
}


где jsObject - Qt/c++ объект с сигналом void address(QString address, int pointId)
Ответить с цитированием