var coord = 0;
function () {
var orderobj = JSON.parse(orders);
var order;
for (i = 0; i < orderobj.length; i++) {
var geocoder = new ymaps.geocode(city + " " + orderobj[i].deliveryAddress.building.street.name + " " + orderobj[i].deliveryAddress.building.number, {
results: 1
});
geocoder.then(
function (res) {
window.coord = res.geoObjects.get(0).geometry.getCoordinates();
}
);
alert(coord);
var order = new ymaps.Placemark([coord], {
name: orderobj[i].id,
balloonContentHeader: orderobj[i].deliveryAddress.building.street.name + " " + orderobj[i].deliveryAddress.building.number,
balloonContentBody: 'телефон:' + orderobj[i].contactPhone + '
статус: ' + orderobj[i].status, // содержимое балуна
balloonContentFooter: ''
}, {
draggable: true
});
OrderCollection.add(order); //добавляем метки в коллекцию
}
}
При первом "проходе" в alert(coord); показываются "0", при втором показываются координаты, метки на карте отрисовываются, но перемещаются только вертикально. Так понял, что функция function (res) вызывается после цикла.