Function nightwatch.js从测试外的函数返回值

Function nightwatch.js从测试外的函数返回值,function,return,nightwatch.js,Function,Return,Nightwatch.js,我很难将测试之外的某些代码移动到需要返回值的函数中 这是我的测试文件代码的一部分 函数getCountOfTopics(浏览器){ var计数; browser.getText(“@sumTopics”, 功能(结果){ 计数=结果值; console.log(result.value); } ); 返回计数; }; module.exports={ “创建文章”:函数(浏览器){ var noOfThreadsByInlineCode,noOfThreadsByFunction; brows

我很难将测试之外的某些代码移动到需要返回值的函数中

这是我的测试文件代码的一部分

函数getCountOfTopics(浏览器){
var计数;
browser.getText(“@sumTopics”,
功能(结果){
计数=结果值;
console.log(result.value);
}
);
返回计数;
};
module.exports={
“创建文章”:函数(浏览器){
var noOfThreadsByInlineCode,noOfThreadsByFunction;
browser.getText(“@sumTopics”,
功能(结果){
noOfThreadsByInlineCode=result.value;
}
);
noOfThreadsByFunction=getCountOfTopics(浏览器);
browser.end();
}

}
返回回调之外的变量“count”,这就是为什么。您可以查看此主题

您想对“值”做什么


ps:不记得自定义_命令。我认为它对解决这个问题很有帮助

一个词的答案是异步性。代码不会等待回调完成,这就是NodeJS的特性

如果您迫切需要回调中的内容,可以将此变量写入文件,然后在代码中的任意位置访问它。这里有一点变通方法:

将某些内容保存到文件中:

var fs = require('fs');

iThrowACallBack(function(response){
  fs.writeFile('youCanSaveData.txt', this.response, function(err) {
    if (err) throw err;
    console.log('Saved!');
    browser.pause(5000);
  });
});
在其他地方访问它:

iAccessThefile(){
   response = fs.readFileSync('youCanSaveData.txt').toString('utf-8');
}

希望有帮助。

你能试试这个.getText而不是browser.getText吗?
iAccessThefile(){
   response = fs.readFileSync('youCanSaveData.txt').toString('utf-8');
}