reactjs - 无法从 AssyncStorage 检索数据
问题描述
我正在使用 AssyncStorage 包,@react-native-community/async-storage
在检索存储的数据时遇到了一个大问题。
我不知道如何解析这些 Promise 结果。
有趣的事实是,如果我console.log(value)
在 if 语句中,它会显示正确的文本,但它会返回 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
它是 async func ,它将返回 promise ,因此您希望等到 promise 解决或拒绝。
所以你可以通过,
let myFunction = async() => {
console.log(await getData('@key'))
}
希望能帮助到你。随时怀疑
推荐阅读
- java - 在 Lucene 中使用多种语言的停用词
- c++ - 任何令人满意的迭代器递归来替换 $a[i]=b[i]*c[i]$ 类型的 for 循环
- spring - Spring Cloud Configuration Client 不刷新属性
- applescript - AppleScript 中的 CR 与 LF
- elasticsearch - Elasticsearch:桶排序聚合+按字母字段排序
- c# - 读取 Excel 文件时出现问题
- html - 如果特定的 id-text,Firefox 中的表单不显示,但在源代码中存在
- javascript - 在 Mocha 中运行一个简单的测试
- reactjs - Jest + Enzyme 测试元素是否专注于
- java - servlet 应用程序中特定于环境的配置属性文件