jQuery сохраняет переменные изменения, даже если я не возвращаю их явно при отсрочке

Ответов: 0

jQuery сохраняет переменные изменения, даже если я не возвращаю их явно при отсрочке

В приведенной ниже функции выполняется getNumber. Я использую item_list для хранения результатов вызовов ajax. Как вы можете видеть ниже, я не пропускаю или item_list нигде allthough после того, как getNumber () заканчивается, хотя для цикла, я могу использовать console.log полный вывод item_list.

Мне интересно, как item_list может сохранить все, что в него попало getNumberQuery ().

function getNumber(id, def) {
 var item_list = [];
 var ajax_def_list = [];
 var proj = id.split(',');

 for (var pro_id = 0; pro < proj.length; pro_id++) {
    var ajax_def = $.Deferred();
    ajax_def_list.push(ajax_def);


    var url = api((endpoint('api')), '?search=' + proj[pro_id]);
    getNumberQuery(url, item_list, ajax_def);


   }
   $.when.apply($, ajax_def_list).then(function(status){
      console.log(id, item_list);
      def.resolve();
   });
}

function getNumberQuery(url, item_list, ajax_def){

 $.when($.ajax(url)).done(function (responce) {
        if (isValid(responce)) {

                    item_list.push(responce['item']);

                ajax_def.resolve();

        } else {
            console.log('Fail to get number : ' + responce);
        }
    });
}
00JavaScript, JQuery, JQuery отсроченный, .when,
Похожие вопросы