Цикл завершается не дожидаясь выполнения функции
Всем кто заглянул спасибо и привет.
Нужна свежая голова, т.к. моя уже от этой жары кипит. Проблема вот в чем. Данные с консольки: Цикл № 0: Координаты на выходе 43.922311 ,56.300127 Цикл № 1: Координаты на выходе 0 Координаты внутри функции 59.43996,32.025632 Т.е. получается, что цикл продолжает свое выполнение не дожидаясь выполнения function (res), и, соответсвенно, переменная coordinates равна 0. Или я не правильно все понял. Не пойму в чем дело. Посоветуйте что-нибудь. $.ajax({ url:'clientsBase.csv', async: false, contentType: "application/json; charset=utf-8", success: function(data){ var rows = data.split("\n"); var src_res=''; for ( var i in rows ) { var colls=rows[i].split(";");//или другой символ разделитель console.log('Цикл № ' + i); // Узнаем, содержаться ли координаты в clientsBase.csv coordinates=0; if (colls[6] == undefined) { //Координат в файле нет, ищем координаты по городу, улице и дому var myGeocoder = ymaps.geocode(colls[2] + ', ' + colls[3] + ' ' + colls[4]).then( function (res) { coordinates = res.geoObjects.get(0).geometry.getCoordinates(); console.log('Координаты внутри функции ' + coordinates); }, function (err) { alert('Ошибка'); } ) } else { //Координаты в файле имеются. Вставляем их из массива в переменную coordinates = colls[5] + ',' + colls[6]; } console.log('Координаты на выходе ' + coordinates); // Устанавливаем координаты и содержимое балуна myPlacemark = new ymaps.Placemark( [coordinates], { // Свойства // балуна balloonContentHeader: '<div style="color:#ff0303;font-weight:bold">'+colls[1]+'</div>', balloonContentBody: '<div style="font-size:12px;"><strong>Адрес:</strong> '+colls[2]+'<br /><strong>Телефон:</strong> '+colls[3]+'</div>' }, { // Опции // балуна preset: 'twirl#carIcon' }); myCollection.add(myPlacemark); $('#menu').append('<li>'+'<a href="#" onClick="return go_point('+colls[0]+");"+'\">'+colls[1]+'</a></li>'); } myMap.geoObjects.add(myCollection); myMap.setBounds(myCollection.getBounds()); } }); |
Два слова: асинхронный запрос.
|
Цитата:
А я код копаю, говорю ж нужна свежая голова. Спасибо (20 слов) :) Я думал, что .then() ждет. |
Часовой пояс GMT +3, время: 00:37. |