@maxsharun

Как получить доступ к свойствам массива JS, записанным через AJAX?

Приветствую,
Ниже приведен код. Получаю в консоль objects и objects[0]. В первом случае показывает мне все элементы массива. Во втором undefinded.
Вот, адрес страницы: halat-prezident.ru
Вот, код:
$(document).ready(function () {
	
	
	var begincat = 1; // начальная категория, с которой получаем все данные
	var objects = new Array;
	var currentoblject = 0;
	function create_objects() { //Создаем объекты на основе категорий товаров в категории с id=1
		
		$.ajax(
			{
				url: '/api/categories?parent_id=1',
				dataType:'json',
				method:'get',
				success: function(response){
				
					for ( let i = 0; i < response.length; i++ ) {
						objects[i] = new Array;
						objects[i]['category_id'] = response[i].id;
						objects[i]['category'] = response[i].category;
						objects[i]['font-type'] = '';
						objects[i]['text1-size'] = 14;
						objects[i]['text2-size'] = 14;
						objects[i]['topimage1'] = '';
						objects[i]['topimage2'] = '';
						objects[i]['bottomimage1'] = '';
						objects[i]['bottomimage2'] = '';
						objects[i]['topimage1'] = '';
						objects[i]['color'] = '#fc0';
						objects[i]['currentproduct'] = 0;
						//получим список товаров и их свойства, входящие в категорию
							$.ajax({
								url: '/api/products?category_id=' + response[i].id,
								dataType:'json',
								method:'get',
								done: function(products) {
									
								objects[i]['products'] = products;
								}
							});
						//
						
					} 
					//console.log(response.length);
				}
			}			
		);
		
	}
	
create_objects(); //инициализируем функцию, чтобы данные записались в objects	
console.log(objects);
console.log(objects[0]);
	
	function drawobject(object) { //Функция отображения объекта по его порядковому номеру в массиве
		//$('#productphoto1').html('<img src="'+objects[object]['products'][0].photo_f+'" class="img-fluid"/>');
		
	}
	
	drawobject(currentoblject);
	
});


Зачем я это делаю. В конструкторе заказа, выбирая опции, я буду менять свойства объекта и отображать его на экране в блоке.

Я новичок. Иногда что-то пытаюсь ваять на JS. Не обессудьте за элементарные вопросы. Спасибо.
  • Вопрос задан
  • 33 просмотра
Решения вопроса 1
@maxsharun Автор вопроса
Проблема решена:
нужно в AJAX-запросы вставить параметр async:false
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы