Javascript 返回并存储异步函数的结果
我有一个加密函数,但当我返回结果时,它返回一个名为PromiseState和PromiserResult的对象。我只想保存或返回PromiseResult的值,并将其保存到一个变量中。我如何才能做到这一点?(对不起,我的业余问题。我是编程新手) 函数名前的“async”一词表示它总是返回promise。如果您想获得该值,可以使用以下代码之一Javascript 返回并存储异步函数的结果,javascript,async-await,Javascript,Async Await,我有一个加密函数,但当我返回结果时,它返回一个名为PromiseState和PromiserResult的对象。我只想保存或返回PromiseResult的值,并将其保存到一个变量中。我如何才能做到这一点?(对不起,我的业余问题。我是编程新手) 函数名前的“async”一词表示它总是返回promise。如果您想获得该值,可以使用以下代码之一 encrypt(password, masterpass).then(data => { console.log(data);// data is
encrypt(password, masterpass).then(data => {
console.log(data);// data is nothing but the value.
});
//OR
let data = await encrypt(password, masterpass);
console.log(data);
您不能期望将来可用的值现在可用。所以你最终总是会得到一个未来价值的承诺。您需要坚持异步编码模式。因此,
encrypt
的调用者也应该使用wait
或then
回调。@trincot我这样称呼它:websitecdentials.password=encrypt(websitecdentials.password,websitecdentials.masterpass);当我想保存连接时,它将承诺保存到其中。请你说得更具体一点,就像我说的:你不能期望结果是.password
,因为这只在以后才可用。您必须将=
替换为=await
,但必须将主代码包装在异步
函数中,否则必须链接。然后((password=>{websitecdentials.password=password;})
…等等。
encrypt(password, masterpass).then(data => {
console.log(data);// data is nothing but the value.
});
//OR
let data = await encrypt(password, masterpass);
console.log(data);