Jaki jest najczystszy sposób na przekształcenie Array JQuery Promises w JQuery Promise of an Array?
Wpadam w sytuację, w której mam wiele JQuery Promises w macierzy
var arrayOfPromises = [ $.Deferred(), $.Deferred(), $.Deferred(), $.Deferred() ]
i musisz zamienić ją w obietnicę JQuery of a Array
var promiseOfArray = someTransform(arrayOfPromises)
gdzie
promiseOfArray.done(function(anArray){
alert(anArray.join(","));
});
tworzy alert z tekstem
wynik1, wynik2, wynik3, wynik4
Obecnie definiujęsomeTransform
w coffeescript as
someTransform = (arrayOfPromises) ->
$.when(arrayOfPromises...).pipe (promises...) ->
promises
który przekształca się w następujący 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;
});
};
Oto jsFiddle wyniku, którego szukam.
Zastanawiałem się, czy istnieje lepszy (krótszy, czystszy) sposób definiowaniasomeTransform
aby osiągnąć ten sam rezultat?