使用事件侦听器中的函数的套接字IO

时间:2017-05-03 07:12:36

标签: angular typescript web socket.io

我在Angular 2中使用socket io,我遇到了问题:

this.socket.on('response_navbar', function (data) {
  console.log(data.entryTypeCollection);
  this.test123();
});

test123() {
   console.log('Test');
}
在事件'response_navbar'到来之后

,console.log()正在运行,但当我尝试调用函数this.test123();时,我收到错误

enter image description here

任何人都可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

因为您使用的是this,所以您应该使用箭头功能来保持上下文。

this.socket.on('response_navbar', (data) => {
  console.log(data.entryTypeCollection);
  this.test123();
});

答案 1 :(得分:0)

我有这个代码用SocketIO初始化我的NodeJs服务器

 var io = require('socket.io').listen(server)
    io.on('connection', function (socket) {
    ....
    }

您不需要放置此内容,因为this.test123引用了socket.on

中的上下文