1. 程式人生 > >vue如何在websocket方法內獲取data裡的資料和method裡的函式

vue如何在websocket方法內獲取data裡的資料和method裡的函式

在實踐中,會發現在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訪問到。