我想从注册页面获取所有值,并将所有值存储在数组中。我该如何在量角器中做到这一点?
var arr = new Array(); //declare array
InputName.getAttribute("value")
.then(function(value){
arr[0]=value; // want to store promise value in an array
});
console.log(arr[0]);
答案 0 :(得分:0)
如果运行代码,它将首先记录arr[0]
,然后解决Promise。因此,您可以在下一个Promise中访问该数组的值。像这样
var arr = new Array(); // <- this is by the way bad practice, use 'let arr = [];'
InputName.getAttribute("value")
.then(function(value) {
arr[0]=value; // I would use arr.push(value)
});
anotherInput.getAttribute("value")
.then(function(value) {
console.log(arr[0]); // your value should be accessible here
arr.push(value) // push another value
});
但是,老实说,我已经和量角器一起工作了一段时间了,我在理解承诺方面仍然有困难...这就是为什么我在测试中使用async/await
的原因,所以如果我要实现类似我最终将拥有以下内容
let arr = [];
let value1 = await InputName.getAttribute("value");
arr.push(value1);
console.log(arr[0]);
清晰,整洁的代码,没有麻烦。另外,量角器团队实际上正在删除promise_manager,因此有一天在更新它时,您的代码将不再起作用。那为什么不早点切换