¿Cuál es la forma más limpia de convertir Array of JQuery Promises en JQuery Promise of an Array?
Me encuentro con la situación en la que tengo varias promesas de JQuery en una matriz
var arrayOfPromises = [ $.Deferred(), $.Deferred(), $.Deferred(), $.Deferred() ]
y la necesidad de convertirlo en una promesa JQuery de una matriz
var promiseOfArray = someTransform(arrayOfPromises)
dónde
promiseOfArray.done(function(anArray){
alert(anArray.join(","));
});
crea una alerta con texto
resultado1, resultado2, resultado3, resultado4
Actualmente definosomeTransform
en coffeescript como
someTransform = (arrayOfPromises) ->
$.when(arrayOfPromises...).pipe (promises...) ->
promises
el cual se transforma al siguiente javascript
var someTransform,
__slice = [].slice;
someTransform = function(arrayOfPromises) {
return $.when.apply($, arrayOfPromises).pipe(function() {
var promises;
promises = 1 <= arguments.length ? __slice.call(arguments, 0) : [];
return promises;
});
};
Aquí hay un jsFiddle del resultado que estoy buscando.
Me preguntaba si hay una forma mejor (más corta, más limpia) de definirsomeTransform
¿Para lograr el mismo resultado?