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. });