Какой самый простой способ превратить массив обещаний 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
добиться того же результата?