HarmonyOS 官方建议关于数据存储和现实的逻辑

后台请求数据后存储本地数据库,当下次再次进来页面,先从本地获取数据,然后从网络获取,并且更新本地数据库,最后做页面的展示。

问题1:

目前我们使用的数据库插入和查询方式为异步操作,出现的情况是,可能数据库插入或者查询操作的时候还没有完成,界面已经加载,此时出现界面无数据现象,或者当数据正在插入的时候,界面关闭,导致数据未插入成功,或者插入部分数据,我再次进入页面,会导致本地查询无数据情况,该如何处理?

问题2:

华为官方建议数据库增删改查,比如上述需求,是用同步操作还是异步更好?

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
shlp

数据库的同步异步是看各自需求去选择的,比如同步的话可以保证顺序执行,异步的话是可能是大批量数据操作等需要不阻碍代码执行。这个也没有好坏之分的,都是看需求去选择。

这边也可以通过在Promise中使用async/await关键字,等待异步执行完毕后,再进行后续操作,实现一个伪同步,具体用法参考:

https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/async-concurrency-overview-V5#asyncawait

一般都是在回调函数中进行编写下一步的操作,或加入async/await 转换为同步进行操作,这样保证一致性和可靠性。基于这个考虑API 12提供了一些同步的接口,之前是只提供Promise和Callback异步回调的方式操作数据库的。

比如先将数据查询完成,在回调中再进行页面加载。常规是这样操作的,目前也没有其他的建议。

以下是数据库封装使用的codelabs也可以参考看看:

https://developer.huawei.com/consumer/cn/codelabsPortal/carddetails/tutorials_NEXT-Rdb

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 关于SegmentButton组件建议
313浏览 • 1回复 待解决
说一说关于数据存储问题
4846浏览 • 2回复 待解决
HarmonyOS应用如何实现实数据更新?
258浏览 • 0回复 待解决
关于数据持久化存储要如何实现
579浏览 • 2回复 待解决
关于逻辑删除问题有懂吗?
2371浏览 • 1回复 待解决
关于敏感信息存储问题
265浏览 • 1回复 待解决
除了轮询长连接如何实现实时通许?
2120浏览 • 1回复 待解决
HarmonyOS 数据存储
35浏览 • 1回复 待解决
HarmonyOS UI逻辑是否可以分离
330浏览 • 1回复 待解决
HarmonyOS 如何实现实时录音转文字
19浏览 • 1回复 待解决