我正在打字稿中编写量角自动化脚本。我有一系列的WebElements作为ElementArrayFinder返回。我需要将每个元素的"字体重量"存储在单独的数组/地图中并返回。我的脚本显示,即使在推送语句之后,数组的长度也是0。有人可以帮助实现这一目标。
public getFontWeightOfElements () : promise.Promise<string>[]
{
let array1 : promise.Promise<string>[] = [];
//taskList is array of WebElements
this.taskList.each((element) =>
{
element.getCssValue('font-weight')
.then((value) =>
{
array1.push(value);
})
})
console.log(array1.length); // getting 0 each time
return array1;
问题在于,在异步操作之前返回数组,已解决的承诺已解决。这是一个解决方案
getFontWeightOfElements(): Promise<string[]> {
return this.taskList.map(element => element.getCssValue('font-weight'));
}
请注意,返回类型不再是Promise
S的数组,而是array
的Promise
。
像这样的消费
getFontWeightOfElements().then(fontWieghts => {
fontWieghts.forEach(fontWieght => {
console.log(fontWeight);
});
});