В приведенной ниже функции выполняется 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,