react-native - React Native:等待 AsyncStorage.getItem 没有响应
问题描述
我有两个按钮,第一个是设置项目,AsyncStorage
第二个是获取项目AsyncStorage
。
<Button title = 'click' onPress = {() => {
let item = '1234'
AsyncStorage.setItem('data', item )
alert('saved')
}
}
/>
<Button title = 'click2' onPress = { async() => {
let item = await AsyncStorage.getItem('data')
alert(item)
console.log(item)
}
}
/>
出于某种原因,在我单击第一个按钮保存数据后,我尝试单击第二个按钮,但alert
功能和console.log
不起作用。有人可以帮我解决吗?谢谢。
解决方案
setItem
也是异步的,您不必等待它解决。您的数据可能没有及时保存(尽管如果您真的使用面向人的按钮似乎不太可能)。
也有可能一个或两个调用都失败了,但您没有处理它们的错误 - 两者都应该用 / 调用await
并包裹在try
/catch
中,当然是在现实世界的应用程序中。同样,尽管我对此表示怀疑,因为在开发中您通常会看到未处理的承诺拒绝的警告。
推荐阅读
- laravel - 无法解析 [Illuminate\Mail\TransportManager] 的 NULL 驱动程序
- html - 我可以通过点击标签提交表单吗?
- python - 如何使用python将带有键值对的抓取的json数据保存为json文件格式
- azure - 配置 TFS Online“Azure 应用服务部署”步骤
- python - 凯撒暴力加密
- python - 按条件在多列上删除行
- html - 基于角度的应用程序的java脚本到打字稿转换
- python - webdriver page_source 没有获得与我手动查看页面源时相同的html代码
- matlab - 为什么将数据从 CPU 传输到 GPU 比从 GPU 传输到 CPU 更快?
- java - Apache Kafka - 了解作为 poll() 方法中的参数存在的超时与 fetch.max.wait.ms 之间的关系