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

How to get a value from a promise and store it in a variable for further use

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

我希望我的方法 return 密码作为字符串而不是已解析的承诺对象。我需要密码字符串,以便我可以将它传递给下面给出的 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({ username: 'loginuser1', password: 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;
    }