Друзья, может кто-то подскажет, есть запрос на получение подсказок яндекс карты, требуется
Синхронно получить данные для каждой подсказки и в зависимости от типа, показывать или нет.
Замучился
Пример
https://jsfiddle.net/obx96w7t/8/
Код:
<script src="https://api-maps.yandex.ru/2.1/?lang=ru-RU" type="text/javascript"></script>
<input id="suggest" type="text" name="m" value="">
ymaps.load(function () {
var suggestView = new ymaps.SuggestView('suggest', {
results: 5,
provider: {
suggest: (function (request, options) {
return (suggestView.state.get('open') ? ymaps.suggest(request) : ymaps.vow.resolve([])).then(function (res)
{
if (res.length > 0) {
// Перебираем подсказки
$.map(res,function( item, i ) {
console.log(item.value);
// Передаем на получение данных по адресу
$.when(geocode(item.value)).then(function(data) {
console.log(data);
})
})
}
suggestView.events.fire('requestsuccess', {
target: suggestView,
});
return res;
})
})
}
});
suggestView.state.set('open', true);
function geocode(request) {
return ymaps.geocode(request, {results: 1})
.then(
function (res) {
var firstGeoObject = res.geoObjects.get(0),
// Координаты геообъекта.
coords = firstGeoObject.geometry.getCoordinates(),
// Область видимости геообъекта.
bounds = firstGeoObject.properties.get('boundedBy');
if (firstGeoObject) {
return firstGeoObject;
}
});
};
});