代码之家  ›  专栏  ›  技术社区  ›  Chinaedu Onwukwe

将内部类函数变量赋给类变量

  •  0
  • Chinaedu Onwukwe  · 技术社区  · 6 年前

    protected _sliderValue: number = 50;
    

    在我的 ngOnInit 我正在连接到websocket服务器。连接已建立,我正在接收来自服务器的消息,可以登录到控制台。

    const connection = new WebSocket('ws://localhost:9999/webSocket');
    connection.onmessage = function (e){
      console.log('Server: ' + e.data);
    };
    

    _sliderValue 给收到的 e.data onmessage websocket连接事件?提前谢谢。

    2 回复  |  直到 6 年前
        1
  •  1
  •   Cam Plimsoll    6 年前

    如果您所指的范围是一个问题,请使用typescript箭头函数来维护“this”的正确范围或实例

    connection.onmessage =(e)=>{
      console.log('Server: ' + e.data);
      this._sliderValue = e.data;
    };
    

    更多信息可以在这里找到 https://basarat.gitbooks.io/typescript/docs/arrow-functions.html

        2
  •  0
  •   FERNman    6 年前

    两种可能性:

    const connection = new WebSocket('ws://localhost:9999/webSocket');
    
    let that = this;
    connection.onmessage = function (e){
    console.log('Server: ' + e.data);
      that._sliderValue = e.data;
    };
    

    这有效是因为 that 是指 this 是另外一回事。

    第二种(现代):使用箭头函数

    const connection = new WebSocket('ws://localhost:9999/webSocket');
    connection.onmessage = (e) => {
      console.log('Server: ' + e.data);
      that._sliderValue = e.data;
    };
    

    this 更多信息。