Здравствуйте!
У меня есть задача: получать координаты организаций по поисковым запросам и выводить их на карту. И если с одним запросом всё хорошо, то при нескольких запросах подряд результат возвращает только первый. Пробовал отправлять их в цикле с таймаутом - то же самое.
Функция с запросом:
function getOrganizations(query, coords) {
var url = "https://search-maps.yandex.ru/v1/?text=" + query + "&ll=" + coords + "&spn=0.792069,0.680552&type=biz&lang=ru_RU&apikey=<?= YANDEX_SPRAVOCHNIK_KEY ?>";
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = 'json';
xhr.onload = function() {
var status = xhr.status;
if (status == 200) {
console.log(xhr.response); // xhr.response.features - пустой при второй итерации
}
};
xhr.send();
}
А вот так вызываю её:
function pass(rubric) {
return getOrganizations(rubric, coords);
}
var rubrics = ["кинотеатр", "кафе"];
for (var i = 0; i < rubrics.length; i++) {
setTimeout(pass(rubrics[i]), i*250);
}