IM web Demo邀请端挂断报错问题规避

2022-01-29 16:54:51 浏览数 (1)

当前从官网下载的IM web端Demo发出邀请然后挂断的话会报如下图这个错误,从而导致挂断异常的情况,那么这个问题是怎么出现以及怎么规避呢?

邀请端挂断异常邀请端挂断异常

原因分析

如下图通过打印res的值我们知道trtcCalling hangup 方法返回的是一个没有返回值的promise,后面取值的话会报错,导致异常

打印res值打印res值
返回undefined返回undefined

那么如果我们把这个取值的地方注释掉是否是正常的呢,经过测试。注释掉是可以正常挂断,但是有个问题就是,挂断后的页面没有展示挂断(取消通话)的消息

注释掉取值注释掉取值
消息展示异常消息展示异常

通过注释掉的代码逻辑可以看到,之所以取这个值是想把这个消息pusher到消息列表。但是目前没返回值怎么获取并添加进去呢。

规避方案

目前通过取值好像没太好办法,只能曲线救国了。想到只要挂断信令成功发出后,重新拉取消息列表肯定是可以拉到的。于是刷新了下页面重新登录后拉取消息列表,果然拉到了。

退出登录重新拉取消息列表,拉取正常退出登录重新拉取消息列表,拉取正常

到这里也不卖关子了,挂断后直接调getMessageList由于消息列表没更新所以直接调用会报’没有更多消息‘的提示,经过测试通过在挂断成功后的回调里加上this.$store.dispatch('checkoutConversation', this.currentConversation.conversationID) 挂断后消息展示正常。

添加规避消息展示异常逻辑添加规避消息展示异常逻辑
消息展示正常消息展示正常

至此,这个问题就完美规避了,如果觉得对你有帮助,麻烦点个赞!

0 人点赞