在事件NodeJ上调用函数

时间:2016-03-23 09:57:09

标签: javascript node.js sockets

实际上我试图在事件发生后调用函数demandConnexion,但它对我有用,它告诉我“this.demandeConnexion不是函数”。我怎么能让它工作?帮助,这是代码:

chmod 755 path/to/web/fonts/OpenSans-Regular.ttf

2 个答案:

答案 0 :(得分:2)

这是因为当回调被调用时#34;这个"不是你的" Serveur"实例。在你的情况下尝试类似



var that = this;
socket.on('connection', (function(idZEP) { 
    that.demandConnexion(idZEP)
    console.log('good')
}))






socket.on('connection', this.demandConnexion.bind(this));




另一个解决方案(我认为最好)是使用箭头函数来保持与闭包相同的范围

socket.on('connection', ()=>{
  //here this refers to your Serveur (the enclosing scope)
});

答案 1 :(得分:1)

this指的是它被调用的函数。当你使用node.js时,你可以使用箭头函数在你认为它的上下文中使this可用。现在,或者将this设置为函数之外的变量。

socket.on('connection', idZEP => this.demandConnexion(idZEP))

或者

var that = this;
socket.on('connection', function(idZEP) { that.demandConnexion(idZEP) });