Какой самый простой способ превратить массив обещаний JQuery в обещание массива JQuery?

Я сталкиваюсь с ситуацией, когда у меня есть несколько обещаний JQuery в массиве

var arrayOfPromises = [ $.Deferred(), $.Deferred(), $.Deferred(), $.Deferred() ]

и нужно превратить его в обещание JQuery массива

var promiseOfArray = someTransform(arrayOfPromises)

где

promiseOfArray.done(function(anArray){
  alert(anArray.join(","));
});

создает предупреждение с текстом

result1,result2,result3,result4

Я в настоящее время определяюsomeTransform в coffeescript как

someTransform = (arrayOfPromises) ->
  $.when(arrayOfPromises...).pipe (promises...) ->
    promises

который превращается в следующий 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;
  });
};

Вот jsFiddle результата, который я ищу.

Мне было интересно, есть ли лучший (короче, чище) способ определенияsomeTransform добиться того же результата?

Ответы на вопрос(2)

Ваш ответ на вопрос