如何对全局变量中的数组进行监听?
发布于 7 年前 作者 xiatang 9216 次浏览 来自 问答

我正在做一个即时通信的小程序,我的自定义组件需要监听我保存在globalData中存在的数组的变化,可是尝试过很多办法都无法监听,甚至死循环。希望各位大佬能够出一下主意。帮小弟解决一下难题

 wx.onSocketMessage(function(res) {
            console.log("传入的原数据:");
            console.log(res);
            var jsonStr = JSON.parse(res.data)
            jsonStr["youSend"] = false
            if (jsonStr.messageType != 1 && jsonStr.messageType != 2 && jsonStr.messageType != 3) {
                innerAudioContext.play()

                var message = {
                    fromusername: null,
                    list: []
                }
                let messageList = that.globalData.MessageList
                var indexof = -1

                for (var i = 0; i < messageList.length; i++) {
                    var a = messageList[i]

                    if (a.hasOwnProperty("fromusername")) {
                        if(a.fromusername == jsonStr.fromusername) {
                            indexof = i
                        }
                    }
                }

                if (indexof == -1) {
                    message.fromusername = jsonStr.fromusername
                    message.list.push(jsonStr)

                    that.globalData.MessageList.push(message)
                } else {
                    that.globalData.MessageList[indexof].list.push(jsonStr)
                }
            }
        })
以上代码是我保存聊天记录的方式
回到顶部