我正在使用@react-native-community/async-storage
中的AssyncStorage软件包,并且在检索存储的数据时遇到了一个大问题。
我不知道如何解析这些Promisse结果。
一个有趣的事实是,如果我在if语句中console.log(value)
,它会显示正确的文本,但是会返回被告。
这是我的功能:
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,
}
答案 0 :(得分:1)
以下是正确的提取数据的方式:
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,因此您要等到promise解决或拒绝promise。
因此您可以通过
let myFunction = async() => {
console.log(await getData('@key'))
}
希望有帮助。毫无疑问