Javascript .then不是函数-承诺和.then在不同的文件中
我正在使用nightwatch js,从不同的js文件调用.then方法时遇到问题 我有一个getCount.js文件Javascript .then不是函数-承诺和.then在不同的文件中,javascript,node.js,promise,nightwatch.js,Javascript,Node.js,Promise,Nightwatch.js,我正在使用nightwatch js,从不同的js文件调用.then方法时遇到问题 我有一个getCount.js文件 module.exports.command = function () { return new Promise((resolve,reject) => { var localSelector = 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table
module.exports.command = function () {
return new Promise((resolve,reject) => {
var localSelector = 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table > tbody';
var rowSelector = localSelector + ' > tr';
this.elements('css selector', rowSelector, function (result) {
if (result.status) {
console.log("Inside IF do promise " + result.value.length)
reject(result.status);
} else {
console.log("Inside ELSE do promise " + result.value.length)
resolve(result.value.length);
}
});
});
};
这是我的home.js,我想在这里兑现我的承诺。然而,得到下面的错误
module.exports = {
url: 'http://localhost:8080/',
elements: {
servicePageTitle :{
selector : 'div.v-card__title > div > span:nth-child(2)'
},
tableBody :{
selector : 'div.flex.mt-4.v-card.v-sheet.theme--light > div > div > table > tbody'
}
},
commands: [{
clickService(selector,serviceName){
return this
.searchTable(selector,serviceName)
},
testPromise(){
this.getCount().then(function(v){
console.log("Total is " + v)
});
}
}]
};
电话::
const page = browser.page.home();
page.navigate().testPromise();
现在我的总数还没有确定。。
以下是输出:
Running: Dashboards:firstTest
Inside ELSE do promise 10
Total is undefined
No assertions ran.
提前谢谢
this.getCount
从何而来?getCount是我作为getCount.js的一部分创建的自定义命令,其中this.getCount
是在问题的代码中定义的(而不是一些随机的外部链接),基本上,自定义命令在nightwatch.js中的工作方式是使用文件名调用它们…。抱歉,我对nightwatch和javascript都是新手,这就是我粘贴链接的原因。问题出在您的问题中没有包含的代码中。在代码中使用这种方法是一种反模式,因为它依赖于这些函数的组装方式(您没有展示)。为了清晰和维护起见,通常不要使用此
引用其他文件中的内容。