环信SDK 踩坑记webIM篇(二)

发送消息时报错Converting circular structure to JSON

这句话我也在网上查了一下,导致的原因可能是里面存在多级递归,导致JSON很大,不能使用。这是为什么呢,请看代码:

// 单聊发送文本消息
var sendPrivateText = function (user,msg) {
    var id = conn.getUniqueId();// 生成本地消息id
    var msg = new WebIM.message('txt', id);// 创建文本消息
    msg.set({
        msg: msg,                  // 消息内容
        to: user,                          // 接收消息对象(用户id)
        roomType: false,
        success: function (id, serverMsgId) {
            console.log('send private text Success');
        }
    });
    msg.body.chatType = 'singleChat';
    console.log(msg.body);
    conn.send(msg.body);
};

细心的你发现了吗???
没错!!! 是 msg
msg.set({msg: msg,}) 这里有三个msg,我想做的是将function (user,msg) 里面的形参 msg传过来,就是这里的第三个msg,可是它可不这么干,把第三个msg理解成第一个msg,结果里面就一直套下去,导致msg不是我想要的,而是递归的形式。

你可能感兴趣的:(移动开发)