【发布时间】:2021-10-22 20:06:57
【问题描述】:
我已经阅读了几个关于这个问题的 stackoverflow 问题和答案,但似乎没有一个能解决我的问题。
我在 React Native 应用程序中使用 Async/await 函数,并尝试从 AsyncStorage 访问数据。我正在尝试使用 .getItem 获取一个值,然后在异步函数之外使用它。这是我用来获取数据的函数。
async _getStorageValue(){
var value = await AsyncStorage.getItem('ITEM_NAME')
return value
}
但是,当我调用此函数并将其设置为变量时,如下所示:
returnedValue = _getStorageValue()
返回一个承诺:
Promise {
"_U": 0,
"_V": 0,
"_W": null,
"_X": null,
}
如何在不使用 useState 挂钩的情况下访问此异步函数中的值?
【问题讨论】:
-
let value; _getStorageValue().then(v => value = v)将是如何做到这一点(声明一个全局,在承诺解决时填充它)。但是,同时依赖于该全局填充的代码可能会失败,因此最好将您的代码包装在async function中并执行const value = await _getStorageValue();,这将暂停该代码的执行,直到值被解析。 -
“不使用 useState 钩子” - 你在使用基于类的组件吗?如果不是,那么不,你不能在没有
useState钩子的情况下使用来自异步函数的值。
标签: javascript react-native async-await asyncstorage