今天遇到这样一种情况,在调用腾讯云IM聊天室JSSDK的时候,下面的读取群组成员一直无法成功调用,但是我在中间写个alert就调用了,一直想不明白怎么回事。
后来在百度查到,原来是加载一些js和css的时候需要时间,找到了解决办法就是用setTimeout(function, 毫秒)函数,然后就成功调用这个方法了。
if(accountMode==1){//托管模式
//判断是否已经拿到临时身份凭证
if (webim.Tool.getQueryString('tmpsig')) {
if (loginInfo.identifier == null) {
webim.Log.info('start fetchUserSig');
//获取正式身份凭证,成功后会回调tlsGetUserSig(res)函数
TLSHelper.fetchUserSig();
}
} else {//未登录,无登录态模式
//sdk登录
sdkLogin();
setTimeout("getGroupMemberInfo(avChatRoomId)", 1500);
}
}else{//独立模式
//sdk登录
sdkLogin();
setTimeout("getGroupMemberInfo(avChatRoomId)", 1500);
}
//读取群组成员
function getGroupMemberInfo(group_id) {
var options = {
'GroupId': group_id,
'MemberInfoFilter': [
'Account',
'Role'
]
};
//alert(1);
webim.getGroupMemberInfo(
options,
function (resp) {
if (resp.MemberNum <= 0) {
alert('该群组目前没有成员');
return;
}
var html="";
var count=0;
for (var i in resp.MemberList) {
if(resp.MemberList[i].Role=="Admin"){
html+="<li><img src='${ctx}/images/tx.png'><span>"+resp.MemberList[i].Member_Account+"</span><i class='adminIco'></i></li>";
count++;
}
}
for (var i in resp.MemberList) {
if(resp.MemberList[i].Role=="Member"){
html+="<li><img src='${ctx}/images/tx.png'><span>"+resp.MemberList[i].Member_Account+"</span><i class='hyIco'></i></li>";
count++;
}
}
$("#memberList").append(html);
$("#memberCount").text(count);
},
function (err) {
alert(err.ErrorInfo);
}
);
}