0

I have this snippet. I want to prepare an array of AJAX calls and call them after that. After all AJAXs finish, something will happen, e.g. UI rendering. I tried but the then() method is called before the AJAX call. How to fix it?

// In a loop I do this.
var deferred = getDeleteResultDeferred(resultId, deleteResultSuccessHandler);
deferreds.push(deferred);

...

function getDeleteResultDeferred(resultId, deleteResultSuccessHandler) {
    var url = getURI("deleteResult");
    var deferred = $.ajax({
        type : "post",
        url : url,
        data : "resultId=" + resultId,
        success: function(response){
            deleteResultSuccessHandler();
        }
    });
    return deferred;
}

// Then I call the AJAXs.
$.when(deferreds).then(function(){
    // UI rendering.
});
emeraldhieu
  • 9,380
  • 19
  • 81
  • 139

0 Answers0