我试图找到一个简单的示例,说明如何从async / await返回值,在async函数之外可以轻松访问该值。
以下两个示例是否被视为从async / await函数返回值的最佳方法?
换句话说,如果需要保存从async / await返回的值,并将其用于代码的其他部分,那么保存该值的最佳方法是什么?
这是easiest example i could find:
async function f() {
return 1;
}
var returnedValue = null; // variable to hold promise result
f().then( (result) => returnedValue = result );
console.log(returnedValue); // 1
或者使用对象会更好吗?
async function f(varInput) {
varInput.value = 1;
}
myObject = {} ; myObject.value=null;
f(myObject);
console.log(myObject.value); // 1
谢谢。
答案 0 :(得分:0)
我的回答在这里涉及两个主题: 1)异步函数返回一个可解析为值的promise。因此,例如,可以按照您的示例使用第一个函数。也可以这样使用:
async function() {
const x = await f();
}
2)不变性-第二种解决方案可以使用,但会使您的功能“不纯净”。它本身并不坏,但是请注意这可能引起的副作用(例如,如果在不通知其他组件的情况下更改应用程序范围内的单例值,则应用程序的某些部分可能与数据不同步) 。 希望这能回答您的问题。