在实践中,会发现在websocket的onmessage方法内处理数据时,从websocket得到的数据无法在其他函数内调用,其他变量和函数也无法在websocket里使用,这是因为数据的作用域不同使得无法访问。

我们可以进行如下修改

func() {               
      ws.send('2')
      ws.onmessage = function (evt) {
        var obj = JSON.parse(evt.data)  //将websocket的string数据转换成对象
        func1(obj)
      }
      let func2 = function func3(val) {
      //在此处即可同时使用websocket的数据和data数据,method函数
      }
      let func1 = func2.bind(this)
    },

如上图所示,通过这样的操作我们可以使得函数能用this访问到。

Logo

前往低代码交流专区

更多推荐