用于访问父元素的“ this”关键字

时间:2019-07-12 15:13:29

标签: typescript

我正在开发一个应用程序,我必须使用这个难看的技巧来访问当前类:

export class ChatComponent implements OnInit {

  private mensajes: string[];

  // Some irrelevant code here

  private conexionWebsocket() {
    this.websocket = new SockJS(this.serverUrl);
    this.stompClient = Stomp.over(this.websocket);

    const that = this; // <--- Ugly Hack!!!

    this.stompClient.connect({ 'Authorization': this.token }, function (frame) {
        that.stompClient.subscribe('/chat', message => {
            that.mensajes.push(message.body); // <--- Ugly reference
        });
    });
  }

  // Some irrelevant code here
}

我尝试使用与Java相同的方法:ChatComponent.this.mensajes,但没有结果。

还有另一种方法可以实现吗?

1 个答案:

答案 0 :(得分:1)

请改用箭头功能。它们保持与定义时相同的this值。

this.stompClient.connect({ 'Authorization': this.token }, (frame) => {
  this.stompClient.subscribe('/chat', message => {
    this.mensajes.push(message.body);
  });
});