Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Помогите с последовательностью в функции (https://javascript.ru/forum/misc/74695-pomogite-s-posledovatelnostyu-v-funkcii.html)

Artur_Hopf 01.08.2018 08:42

Помогите с последовательностью в функции
 
Добрый день. Есть функция которая выполняет два get запроса. Помогите мне упорядочить действие чтобы передать массив после выполнения обоих запросов. Пример:

$(document).ready(function(){
    getData ();
});

function getData (){
    var array = [];
    
    $.getJSON('index', function(data) {
        data = data.toString().split(';');
        array[0] = [{name1: data[1], name2: +data[2]},{name1: data[10], name2: +data[11]}];
    });
    
    $.getJSON('index2', function(data) {
        data = data.toString().split(';');
        array[1] = [{name1: data[1], name2: +data[2]},{name1: data[10], name2: +data[11]}];

    }); 
    createData(array);
}

function createData(data){
     //data массив после получения данных;
};

В данном примере например нужно вызвать функцию createData() только после того как оба get запроса будут выполнены, а как это сделать я не очень понимаю. Выполняются они не одновременно.

Так я сделать не могу потому что get запрос может выполнятся порядка минуты, нужно чтобы они одновременно запускались:

$.getJSON('index', function(data) {
        data = data.toString().split(';');
        array[0] = [{name1: data[1], name2: +data[2]},{name1: data[10], name2: +data[11]}];
        $.getJSON('index2', function(data) {
                data = data.toString().split(';');
                array[1] = [{name1: data[1], name2: +data[2]},{name1: 
               data[10], name2: +data[11]}];
               createData(array);
        });  
});

рони 01.08.2018 09:08

Artur_Hopf,
$(function(){
    getData ();
});

function getData (){
    var array = [];

 var a = $.getJSON('index', function(data) {
        data = data.toString().split(';');
        array[0] = [{name1: data[1], name2: +data[2]},{name1: data[10], name2: +data[11]}];
    }),

 b = $.getJSON('index2', function(data) {
        data = data.toString().split(';');
        array[1] = [{name1: data[1], name2: +data[2]},{name1: data[10], name2: +data[11]}];

    });

 $.when(a, b).then(function() {createData(array);})


}

function createData(data){
     //data массив после получения данных;
};

Artur_Hopf 01.08.2018 09:17

рони,
Спасибо большое :thanks:


Часовой пояс GMT +3, время: 18:25.