【发布时间】:2012-08-25 18:32:01
【问题描述】:
我遇到了一个数组中有多个 JQuery Promise 的情况
var arrayOfPromises = [ $.Deferred(), $.Deferred(), $.Deferred(), $.Deferred() ]
并且需要把它变成一个数组的 JQuery Promise
var promiseOfArray = someTransform(arrayOfPromises)
在哪里
promiseOfArray.done(function(anArray){
alert(anArray.join(","));
});
使用文本创建警报
结果1,结果2,结果3,结果4
我目前在coffeescript中将someTransform定义为
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;
});
};
Here is a jsFiddle 我正在寻找的结果。
我想知道是否有更好(更短、更简洁)的方式来定义 someTransform 以达到相同的结果?
【问题讨论】:
标签: javascript jquery coffeescript promise