配列に複数のJQueryPromisesがある状況に遭遇しました
var arrayOfPromises = [ $.Deferred(), $.Deferred(), $.Deferred(), $.Deferred() ]
そしてそれを配列のJQueryPromiseに変換する必要があります
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
同じ結果を達成するために定義するためのより良い(より短く、よりクリーンな)方法があるかどうか疑問に思いましたか?