Depuis que j'ai utilisé $.Deferred
, j'ai rencontré ce scénario plusieurs fois: j'ai une liste de valeurs qui chacune donne un objet différé d'une certaine manière et je veux exécuter un rappel une fois que tous les Les objets différés sont résolus.Traitement des tableaux d'objets différés
serait quelque chose comme un exemple plus concret ceci:
var urls = [ 'foo.com', 'bar.com', 'baz.com', 'qux.com' ],
defers = [], defer;
for(var i = 0, j = urls.length; i < j; i++){
defer = $.ajax({
url: 'http://' + urls[ i ]
});
defers.push(defer);
}
$.when.apply(window, defers).done(function(){
// Do Something
});
Y at-il une solution plus élégante que le code dans mon exemple?
Pourquoi pensez-vous que ce n'est pas élégant? – topek
Après avoir écrit un code comme celui-ci pour la 3ème fois, j'ai commencé à penser que c'était un scénario assez commun et que je pourrais être traité par le framework Deferred Objects d'une meilleure façon que je ne faisais que négliger. –