Javascript 当promise数组的长度不确定时的Q.js Q.all()

Javascript 当promise数组的长度不确定时的Q.js Q.all(),javascript,promise,Javascript,Promise,我想使用Q.all()返回一个promise数组; 像这样: return Q.all([ list[0].getCssValue('height'), list[1].getCssValue('height'), ..., list[list.length-1] .getCssValue('height') ]); 我需要返回数

我想使用Q.all()返回一个promise数组; 像这样:

return Q.all([
              list[0].getCssValue('height'),
              list[1].getCssValue('height'),
              ...,
              list[list.length-1]
              .getCssValue('height')
             ]);
我需要返回数组中的所有列表,我可以通过array.length获得长度

问题是我不能

   for(var i = 0; i < list.length; i++)
那么我应该如何做到这一点呢?

实际上,您可以通过创建一个新数组来做到这一点:

var arr = []
for(var i = 0; i < list.length; i++){
    arr.push(list[i].getCssValue('height');
}
return Q.all(arr); // wait for all getCssValue actions

请注意,
Q.all
将为数组提供承诺,而不是承诺数组。您的
getCssValue
函数是否为单个值返回承诺?你能发布它的代码吗?
var arr = []
for(var i = 0; i < list.length; i++){
    arr.push(list[i].getCssValue('height');
}
return Q.all(arr); // wait for all getCssValue actions
return Q.all(arr.map(function(x){ return x.getCssValue('height'); });