Javascript Jquery在完成ajax in循环后调用另一个函数
我有一个在循环中运行的ajax函数,它取决于数组中项目的数量。在ajax调用完成后,如何在循环之外运行另一个函数?可能吗 这就是函数Javascript Jquery在完成ajax in循环后调用另一个函数,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个在循环中运行的ajax函数,它取决于数组中项目的数量。在ajax调用完成后,如何在循环之外运行另一个函数?可能吗 这就是函数 function downloadAll(){ downloads = []; $.each(checked, function(key, value) { $.ajax({ method: "POST", url: "<?php echo site_url($this->
function downloadAll(){
downloads = [];
$.each(checked, function(key, value) {
$.ajax({
method: "POST",
url: "<?php echo site_url($this->data['controller'].'/Download/'); ?>",
data:'id='+value,
beforeSend: function () {
$('.loading').show();
},
success: function(data){
downloads.push(data);
$('.loading').fadeOut("slow");
},
});
});
processZip(downloads);
}
函数下载全部(){
下载=[];
$。每个(选中,函数(键,值){
$.ajax({
方法:“张贴”,
url:“”,
数据:'id='+值,
beforeSend:函数(){
$('.loading').show();
},
成功:功能(数据){
下载.推送(数据);
$('.loading')。淡出(“慢速”);
},
});
});
processZip(下载);
}
让我们从所有呼叫成功后开始,这非常简单:
success: function(data){
downloads.push(data);
$('.loading').fadeOut("slow");
if(downloads.length===checked.length){//suppose checked is array like
alert("finish");
}
},
外部循环更难,因为它不是真正的循环,需要一些修改。您基本上希望等待多个承诺(Promise.all):
让我们从所有呼叫成功后开始,这非常简单:
success: function(data){
downloads.push(data);
$('.loading').fadeOut("slow");
if(downloads.length===checked.length){//suppose checked is array like
alert("finish");
}
},
外部循环更难,因为它不是真正的循环,需要一些修改。您基本上希望等待多个承诺(Promise.all):
您可以尝试保留一个计数器并在成功时递增它,然后检查是否(计数器==checkedItemlength)调用processZip(下载)。您可以尝试保留一个计数器并在成功时递增它,然后检查是否(计数器==checkedItemlength)调用processZip(下载)哦!我认为检查下载长度匹配检查长度是伟大的!非常感谢。哦我认为检查下载长度匹配检查长度是伟大的!非常感谢。