Показать сообщение отдельно
  #1 (permalink)  
Старый 13.08.2014, 15:15
Новичок на форуме
Отправить личное сообщение для leonoff Посмотреть профиль Найти все сообщения от leonoff
 
Регистрация: 13.08.2014
Сообщений: 2

Цикл завершается не дожидаясь выполнения функции
Всем кто заглянул спасибо и привет.
Нужна свежая голова, т.к. моя уже от этой жары кипит.

Проблема вот в чем. Данные с консольки:
Цикл № 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());
			
	}
	
});
Ответить с цитированием