微信小程序用websocket获取用户是否有新信息 当信息数为零时报错问题解决

通过websocket连接java后台

wx.onSocketMessage(function (res) {
var objData = JSON.parse(res.data);
      console.log(objData.length);

获取res并转为json后 获取objData的长度来显示用户新信息数量

问题是如果信息为零时 res中没有数据 objData无法将res.data数据转为json

解决方法为在将res转换为json前判断res.data中是否为空

if (res.data != '') {
        var objData = JSON.parse(res.data);
      console.log(objData.length);
        that.globalData.shu = objData.length;
      }
      else{
        that.globalData.shu = 0;
      }

下面是完整代码



onLaunch: function () {
    // 获取用户信息
    var that = this;
    var wei = this.lc(function (wei) {
     // console.log(wei);

     // that.setData({ openid: wei.data.openid });
    wx.connectSocket({
      url: "ws://localhost:9090/xcxmvc/so",
    })

    //连接成功
    wx.onSocketOpen(function () {
      console.log("c" +wei.data.openid);
      wx.sendSocketMessage({
        data: wei.data.openid,
      })
    })
    wx.onSocketMessage(function (res) {
      
      if (res.data != '') {
        var objData = JSON.parse(res.data);
      console.log(objData.length);
        that.globalData.shu = objData.length;
      }
      else{
        that.globalData.shu = 0;
      }
    })


    //连接失败
    wx.onSocketError(function () {
      console.log('websocket连接失败!');
    })

    });
  },

猜你喜欢

转载自blog.csdn.net/weixin_40938312/article/details/105022958