Тема: JavaScript .then()
Показать сообщение отдельно
  #1 (permalink)  
Старый 27.07.2012, 13:48
Интересующийся
Отправить личное сообщение для LaNaite Посмотреть профиль Найти все сообщения от LaNaite
 
Регистрация: 27.07.2012
Сообщений: 13

JavaScript .then()
Всем привет!
Я начинаю изучать yandex.api 2.х для интеграции с 1С. Очень надеюсь здесь найти ответ. В документации к api есть метод geocode() который отвечает за прямое и обратное геокодирование.
Из 1С я хочу обращаться к методу geocode и в случае неудачного геокодирования заполнять таблицу адресами, которые не удалось отобразить на карте. Запрос geocode асинхронный.
Функционал я пытаюсь реализовать с помощью функции findPlacemarkOnMap(). Код ниже:

function findPlacemarkOnMap(adress, returnResult){
var myCollection = new ymaps.GeoObjectCollection();
ymaps.geocode(adress, {results: 1}).then(
function (res){
myCollection.add(res.geoObjects);
myMap.geoObjects.add(myCollection);	
if (myCollection.getLength() == 0) {returnResult = false} else {returnResult = true};
},
// Ошибка сервера или "плохие" входные данные
// Не срабатывает в случае неотображения объектов на карте
function (err){
alert(err.message);
});	
return returnResult;
}


Проблема в том, что return returnResult срабатывает раньше, чем выполняется код в конструкции .then()
Может я не в том месте присваивание прописываю или возврат?

Последний раз редактировалось LaNaite, 27.07.2012 в 13:52. Причина: дополнение
Ответить с цитированием