@tonybeat

Как совместить 2 запроса?

Помогите пожалуйста, очень важно
В первом запросе все хорошо проходит.
Формируется html и отображаются все display_name из запроса.
Но для каждого display_name надо указать цену. Для этого мы посылаем второй запрос. Но фишка в том ,если productIdMap[0] то понятно передается одно значение и мы получаем сумму в массиве. А если передаем просто productIdMap то понятное дело ошибку.
Вопрос как построить цикл. чтобы запрос на цену(второй запрос) отправлялся по всем productId и впиливался в мой цикл рядом с display_name .
Что было так :
data.products[0].display_name - productId[0]
data.products[1].display_name - productId[1]

Итд.
Ниже код

$.ajax({
                    url: 'https://uxui.ru/api/uber/products/',
                    dataType: 'json',
                    data: {
                        latitude: latitude,
                        longitude: longitude
                    },
                    beforeSend: function() {
                        $('#map .centerMarker').hide();
                        document.location.href = "#waiting";

                    },
                    success: function(data) {
                        productId = data.products;
                        const productIdMap = productId.map(el => el.product_id);
                              console.log(productIdMap);
                        $.ajax({
                            type: 'get',
                            url: 'https://uxui.ru/api/uber/estimates/',
                            dataType: 'json',
                            data: {
                                product_id: productIdMap,
                                start_latitude: x_ot,
                                start_longitude: y_ot,
                                end_latitude: x_to,
                                end_longitude: y_to,
                                seat_count: '2'
                            },
                            success: function(data) {
                                console.log(data);
                            }
                        });

                        $('#map .centerMarker').hide();
                        document.location.href = "#tabs";
                        for(var i=0; i<data.products.length;i++) {
                            $('#tabs-1').append(
                                '<p>'+data.products[i].display_name+'</p>'
                            );
                        }
                    }
                });
  • Вопрос задан
  • 249 просмотров
Пригласить эксперта
Ответы на вопрос 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
Например, так (вызвав подчиненные запросы параллельно):

$.get( "https://swapi.co/api/people", function( people ) {
  
  var deferredSubRequests = [];
  
  $.each(people.results, function( i, person ) {
    console.log(i, person.name);
    deferredSubRequests.push($.get(person.homeworld));
	});
  
  $.when(deferredSubRequests).then(function(results) {
    console.log('DONE!');
    $.each(results, function( j, planetResult ) {
    	//var ss = result.promise.resolve();
    	planetResult.done(function(planet){console.log(j, planet.name);});
    });
   });
 
});

Можно этот код запустить в jsfiddle.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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