我来重现一下啊,在某个页面里,我传入conversation ID和client ID后,想列出该用户参与的所有对话列表,伪JS代码如下:
可以看到,client先注册了message和unreadmessage事件,然后进行了一次Query查询,条件为包括当前clientID,查询的结果会带有Lastmessage。
这些事件的回调函数中都会带有console.log,来将这些参数返回到控制台。但是问题如下:
1, 到达先后顺序不确定
unreadmessage和query的结果都是异步的消息,二者到达的先后顺序不确定,如图:
上图为同一个面刷新两次的结果,可以看到两条消息到达的时间不确定。这样的话不太好根据其中固定的某一条来操作页面元素。
2, Query结果里的Lastmessage随机缺失
当查询结束后理论上讲lastMessage里应当存在该对话的最后消息。然而当把他们console.log()到控制台时,结果不太正确:
上图的lastMessage应该为TextMessage类型,但随机地显示为undefined。
我发现的规律是:考虑到问题1里的消息到达先后顺序不确定,如果unreadmessage先到达,那么这里的lastMessage是正常的TextMessage;但如果Query先到达,那么unreadmessage返回的lastMessage就是undefined了。
是Leancloud后台进行了一些操作么?
3, unreadMessageCount问题
>有一点像问题2,下班再回答。
-
创建时间
16年5月17日
-
最后回复
19年1月25日
-
5
回复
-
2.9K
浏览
-
3
用户