Javascript 当promise数组的长度不确定时的Q.js Q.all()
我想使用Q.all()返回一个promise数组; 像这样: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') ]); 我需要返回数
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'); });