我使用的是来自 @react-native-community/async-storage
并在检索存储数据时出现了很大的问题。
我不知道如何解析这些Promisse结果。
有趣的是,如果我 console.log(value)
内的if语句,它显示了正确的文本,但它返回的是Promisse。
这就是我的函数。
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
是一个异步函数,它将返回承诺,因此你要等到承诺解决或拒绝。
所以你可以通过,
let myFunction = async() => {
console.log(await getData('@key'))
}
希望对大家有所帮助.如有疑问请随时咨询