当前从官网下载的IM web端Demo发出邀请然后挂断的话会报如下图这个错误,从而导致挂断异常的情况,那么这个问题是怎么出现以及怎么规避呢?
原因分析
如下图通过打印res的值我们知道trtcCalling hangup 方法返回的是一个没有返回值的promise,后面取值的话会报错,导致异常
那么如果我们把这个取值的地方注释掉是否是正常的呢,经过测试。注释掉是可以正常挂断,但是有个问题就是,挂断后的页面没有展示挂断(取消通话)的消息
通过注释掉的代码逻辑可以看到,之所以取这个值是想把这个消息pusher到消息列表。但是目前没返回值怎么获取并添加进去呢。
规避方案
目前通过取值好像没太好办法,只能曲线救国了。想到只要挂断信令成功发出后,重新拉取消息列表肯定是可以拉到的。于是刷新了下页面重新登录后拉取消息列表,果然拉到了。
到这里也不卖关子了,挂断后直接调getMessageList由于消息列表没更新所以直接调用会报’没有更多消息‘的提示,经过测试通过在挂断成功后的回调里加上this.$store.dispatch('checkoutConversation', this.currentConversation.conversationID) 挂断后消息展示正常。
至此,这个问题就完美规避了,如果觉得对你有帮助,麻烦点个赞!