HarmonyOS 两个异步函数同时操作rdbstore的数据竞争问题处理
两个异步函数同时操作rdbstore的数据竞争问题处理,该如何避免?
私信场景,两个接口分别获取商品信息和联系人头像昵称,分别在两个异步函数发起请求,之后读取数据库,并更新信息,但是测试发现数据有竞争现象,导致数据被覆盖。
func1() {
let user = await MsgCenterContactDB.getContactByUid(uid);
user.name = xxx;
await MsgCenterContactDB.insertOrUpdate(user);
}
func2() {
let user = await MsgCenterContactDB.getContactByUid(uid);
user.headPic = xxx;
await MsgCenterContactDB.insertOrUpdate(user);
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
这两个函数都是异步的,导致数据产生了错乱,最终headPic或者name为空
HarmonyOS
赞
收藏 0
回答 1
相关问题
关于数据库的两个问题。
3172浏览 • 1回复 待解决
HarmonyOS 怎么让两个list同时滚动
733浏览 • 1回复 待解决
HarmonyOS 如何让界面中同时有两个webview
713浏览 • 1回复 待解决
HarmonyOS 两个同级的组件问题
1266浏览 • 1回复 待解决
HarmonyOS 是否支持一键同时拉起两个应用,并且怎么设置让两个应用分屏显示?
864浏览 • 1回复 待解决
HarmonyOS 横纵滚动两个scroll怎么实现同时滚动
1514浏览 • 1回复 待解决
HarmonyOS 定义组件TabList,在一个页面同时使用两个时出现问题
1350浏览 • 1回复 待解决
关于Image组件的两个问题
1223浏览 • 1回复 待解决
HarmonyOS 两个网页间的数据如何同步
618浏览 • 1回复 待解决
两个设备控制相关问题
9603浏览 • 3回复 已解决
android 手机能否同时连接两个蓝牙设备
4820浏览 • 1回复 待解决
HarmonyOS 两个枚举类型之间转换问题
943浏览 • 1回复 待解决
pinch事件两个手指拖动时,获取的两个手指前后变化差值有问题
1720浏览 • 1回复 待解决
HarmonyOS 两个感叹号!!的判断使用问题
709浏览 • 1回复 待解决
HarmonyOS Text控件处理\n\n两个换行,间距小
1197浏览 • 1回复 待解决
HarmonyOS scroll组件可以同时设置垂直和水平两个方向滑动吗
987浏览 • 1回复 待解决
HarmonyOS 关于两个权限的区别
1280浏览 • 1回复 待解决
HarmonyOS 接入意图框架,建议卡片展示的两个问题
706浏览 • 1回复 待解决
一个项目里有两个网站, 怎么让数据在这两个网站系统之间互通使用呢?
3207浏览 • 1回复 待解决
HarmonyOS relationalStore.RdbStore.commit是异步的吗
789浏览 • 1回复 待解决
HarmonyOS 如何比较两个日期的大小?
1495浏览 • 1回复 待解决
HarmonyOS Column容器内子两个组件间存在的间隙问题
1200浏览 • 1回复 待解决
HarmonyOS Stack布局中,两个重叠的组件点击事件问题
1669浏览 • 1回复 待解决
HarmonyOS 如何合并两个对象
956浏览 • 1回复 待解决
HarmonyOS 两个日期怎么比较
1206浏览 • 1回复 待解决
关于此问题,官方有约束,同一时间只能有一个写操作,参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/data-persistence-by-rdb-store-V5
请确认是否使用API是10? 如果是的话,可通过指定冲突解决模式,来解决此问题,参考链接:
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-data-relationalstore-V5#update10