业务有点类似聊天软件。
有一个数组,存放联系人列表
当接收到到新消息时,需要判断消息的主人在不在联系人列表中,如果有,置顶,否则新建。
现在的问题是,当同时接收到大量消息时,在判断和插入间隔,又有判断,导致数据重复插入。
主要代码逻辑:
getMessage() {
for (...) {
// 遍历数组,判断联系人是否存在
// 如果找到, 在原索引处删除, 在新索引处添加
contacts.splice(index, 1)
contacts.splice(newindex, 0, item)
// 如果没找到,在索引处添加
contacts.splice(newindex, 0, item)
}
}
第一条消息到达后,进入方法,遍历数组...这时第二条消息来了,也进入方法,造成数据重复插入。
感谢阅读。
这个问题应该在数据库层面解决吧