我创建了一个实用程序函数,用于使用量角器和JavaScript获取Web表的总大小。
this.getTableSize = function(tableElement, rowSelector, columnSelector){
return {
row: tableElement.all(rowSelector).count(),
column : tableElement.all(columnSelector).count()
}
};
但是在使用相同功能时,我遇到了错误:
tableActions.getTableSize(table,by.css("tr"),by.css("th")).then(function(obj){
console.log(obj);
})
我得到的错误是:
TypeError: tableActions.getTableSize(...).then is not a function
答案 0 :(得分:0)
代码失败的原因是因为您在不返回.then()
的函数上使用promise
。
以下是有效的promise
的示例:
let promise1 = new Promise( (resolve, reject) => {
let dataReceivedSuccessfully = false;
if (dataReceivedSuccessfully) {
resolve('Data Available!');
}
if (!dataReceivedSuccessfully) {
reject('Data Corrupted!');
}
})
promise1.then( (success) => {
console.log(success);
}).catch( (err) => {
console.log(err);
})
您可以在代码中使用它来返回resolve
或reject
,然后您就可以使用.then()
。
https://medium.freecodecamp.org/promises-in-javascript-explained-277b98850de
答案 1 :(得分:0)
您需要更正方法以正确处理承诺。
我假设tableElement.all(rowSelector).count()返回一个promise,否则您将不得不处理回调;
this.getTableSize = function (tableElement, rowSelector, columnSelector) {
return ableElement.all(rowSelector).count().then(function(c) {
return ableElement.all(columnSelector).count().then(function (c2) {
return {
row: c,
column: c2
}
})
})
};
tableActions.getTableSize(table, by.css("tr"), by.css("th")).then(function (obj) {
console.log(obj);
})
Promise.all不返回带有bluebird promises的已解析数据数组,请使用。
#include <stdio.h>
int main() {
int gg; //number which user inputs
int dg = 0; //first number
int next = 0;
int n;
int i;
printf("Number of series: ");
scanf("%d", &gg);
printf("Positive integer: ");//max number which outputs in printf("Series: \n", gg), etc. 1000;
scanf("%d", &n);
printf("Series: \n", gg); //result
for (i = 0; i < gg; i++) {
printf("%d, ", i);
}
next = gg + dg;
while(next <= n){
printf("%d, ", next);
dg = gg;
gg = next;
next = gg + dg;
}
return 0;
}