Tratar con matrices de objetos diferidos
Desde que usa$.Deferred
Me he encontrado con este escenario un par de veces: tengo una lista de valores, cada uno de los cuales produce un Objeto Diferido de alguna manera y quiero ejecutar una devolución de llamada una vez que se resuelvan todos los Objetos Diferidos.
Un ejemplo más concreto sería algo como esto:
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
});
¿Hay una solución más elegante que el código en mi ejemplo?