Я извиняюсь, если был вопрос, но вроде ничего не нашел.
Есть массив с объектами метка, для метки есть свойства: координаты, адрес, текст для балуна, идентификатор. Все это дело я получаю ajax-запросом из базы данных.
Прохожусь по меткам циклом for in и добавляю их на карту. Все ок, если у нас есть координаты. Но если нет координат, то надо сделать запрос к геокодеру, записать координаты в БД и добавить метку с полученными координатами на карту. Вот тут то и проблема: мне нужно использовать текст для балуна и идентификатор, но из-за асинхронности передачи данных не выходит. Используются идетнификатор и текст последней записи, т.к. пока шел ответ от геокодера уже прошли все интерации цикла.
{
if(reg.test(result[mark].Coords)) //Проверка регэкпом на правильность координат
{
coords = result[mark].Coords.split(',');
addPlacemark([parseInt(coords[0]), parseInt(coords[1])],num,mark);//Добавление метки вынесено в отдельную функцию
} else {
if(result[mark].Address)
{
ymaps.geocode("Беларусь, " + result[mark].Address, {results: 1})
.then(
function (res) {
coords = res.geoObjects.get(0).geometry.getCoordinates();
//тут нужен доступ к result[mark] текущей интерации
},
function (err) {
// обработка ошибки
}
);
}
}
}