Attendez que la liste des requêtes ajax de jQuery soit terminée?

C’est presque la même chose avec cette question: attendez que toutes les demandes jQuery Ajax soient terminées?

Mais ma question est imporve:

Je fais beaucoup de requêtes en ajax et je les sauvegarde dans un tableau:

var events = []; for(var i = 0; i < 10; ++i) { events.push($.ajax({...})); } $.when(events).done(function() { // do something when all requests are done. }); 

Comme le dit la question connexe, la méthode $ .when prend un object jqXHR dans l’ordre , mais ici, je veux une liste de ceux-ci .

Et j’ai lu les documents dans http://api.jquery.com/jQuery.when/#jQuery-when-defereds , mais la méthode semblait ne pas supporter ce cas (passage d’une liste de jqXHR à $.when )

Comment est-ce possible? Plz aide.

vous devez transmettre les promesses sous forme de liste d’arguments (telle que $.when(promise1, promise2, promise3) ) à $ .when () et non sous forme de tableau; utilisez donc Function.apply () .

 $.when.apply($, events).then(function() { // do something when all requests are done. });