我正在使用 @react-native-community/async-storage
中的 AssyncStorage 包,在检索存储的数据时遇到了一个大问题。
我不知道如何解析这些 Promise 结果。
有趣的是,如果我在 if 语句中 console.log(value)
,它会显示正确的文本,但它会返回 Promise。
这是我的功能:
const getData = async (key: string) => {
try {
const value = await AsyncStorage.getItem(key)
if(value !== null) {
return value
}
} catch(e) {
TriggerAlert(I18n.t('error.readError') + e)
}
}
这就是我调用函数的方式
console.log(getData('@key'))
这是我得到的输出:
Promise {
"_40": 0,
"_55": null,
"_65": 0,
"_72": null,
}
最佳答案
以下是正确的,您提取数据的方式:
const getData = async (key: string) => {
try {
const value = await AsyncStorage.getItem(key)
if(value !== null) {
return value
}
} catch(e) {
TriggerAlert(I18n.t('error.readError') + e)
}
}
您唯一想要更改的是函数调用位置,因为 getData
是一个异步函数,它将返回 promise ,因此您想要等到 promises 解决或拒绝。
所以你可以通过 ,
let myFunction = async() => {
console.log(await getData('@key'))
}
希望对你有帮助。有疑问请随意
关于reactjs - 无法从 AssyncStorage 检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62395063/