Skip to content Skip to sidebar Skip to footer

Jquery Call Another Function After Ajax In Loop Is Done

I have an ajax function that runs inside a loop and is dependent on the amount of items in the array. How do I run another function after the ajax call is done and outside the loop

Solution 1:

Lets start with after all calls succeded which is quite easy:

success: function(data){
      downloads.push(data);
      $('.loading').fadeOut("slow");
      if(downloads.length===checked.length){//suppose checked is array like
        alert("finish");
      }
 },

Outside of the loop is more difficult as it isnt really a loop and it requires some modifications. You basically want to await multiple Promises (Promise.all):

Promise.all(checked.map(function(value){
 return Promise(function(resolve){
  $.ajax({... ,success:resolve});
 });
})).then(function(downloads){
 console.log("finished",downloads);
});

Post a Comment for "Jquery Call Another Function After Ajax In Loop Is Done"