如何从promise中获取值并将其存储在变量中以供进一步使用



如何从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;
}

最新更新