如何从promise中获取值并将其存储在变量中以供进一步使用。
我希望我的方法以字符串的形式返回passoword,而不是已解析的promise对象。我需要passoword字符串,这样我就可以将它传递给下面给出的httpAuth函数。httpAuth((来自TestCafe自动化框架
Test.js代码:
let mypass=Utils.returnPwd(); //I am using returnPwd() from Utils.js file that's returning a password.
fixture`Automated Test1`
.meta('fixturepack', 'regression')
.page("http://intranetURL")
.beforeEach(async t => {
DriverManager.setDriver(t);
await DriverManager.maximize();
})
.httpAuth({
username: 'loginuser1',
password: mypass
})
Utils.js代码:
async base64Decoding(encodedPassword) {
var decodedData = Buffer.from(encodedPassword, 'base64').toString('ascii');
var decodedPassword = decodedData.toString()
console.log(decodedPassword);
return decodedPassword;
}
async returnPwd(){
let mypass2= this.base64Decoding('A2dIOEhBfXYvfSNba');
return mypass2.then(function(){ })
}
当前错误:credentials.password应该是一个字符串,但它是对象。
.httpAuth({用户名:'loginuser1',密码:mypass})
我在Untils.js中没有看到任何async
代码,您可以使其同步
//Test.js
let mypass = Utils.returnPwd();
//Utils.js
base64Decoding(encodedPassword) {
var decodedData = Buffer.from(encodedPassword, 'base64').toString('ascii');
var decodedPassword = decodedData.toString()
console.log(decodedPassword);
return decodedPassword;
}
returnPwd(){
let mypass2= this.base64Decoding('A2dIOEhBfXYvfSNba');
return mypass2;
}