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?

questionAnswers(2)

yourAnswerToTheQuestion