云开发的小程序只在PC打开,watch中报错,其他设备上都很正常,不知道为什么?
发布于 4 年前 作者 xiangming 535 次浏览 来自 官方Issues

排查了好久发现是这个监听的错。之前在pc上也是正常的,突然报的这个错。

试过用get获取数据pc也是可以获取的,就是这个watch报了错

watcher = db.collection(database_name).orderBy('time''desc').where({
      // openid:wx.getStorageSync('openid'),
      uid:wx.getStorageSync('id')
    }).watch({
      onChange:function(data){
        console.log(data)
        if(data.docChanges.length==0){
          return
        }
        //当数据删除的时候
        if(data.docChanges[0].dataType=="remove"){
            console.log('删除')
        }else if(data.docChanges[0].dataType=="add"){
          // 语音播报
          if(data.docChanges[0].doc.msg_type==2){
            data_arr.push(data.docChanges[0].doc.msg)
            console.log(data_arr,'单个语音播报')
            audio_text(data_arr[0])
          }
        }
      },
      onError:function(err){
        watcher.close()
      }
    })
2 回复

已经解决,pc端监听的返回的数据大小的限制,所以加个limit()做个限制

排查下这个报错。

socket 接受消息后, JSON.parse 报错

回到顶部