实际上我试图在事件发生后调用函数demandConnexion,但它对我有用,它告诉我“this.demandeConnexion不是函数”。我怎么能让它工作?帮助,这是代码:
chmod 755 path/to/web/fonts/OpenSans-Regular.ttf
答案 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) });