<分区>
例如在类构造函数中:
Socket.on('user:join', onUserJoin);
'onUserJoin' 被声明为类的一个方法,但被 socket.io 调用,所以 'this'
不是我的类。解决此问题的一种方法是使用 '=>'
函数。
例子:
Socket.on('user:join', (data)=>{
this.isOnline = true;
});
现在 'this'
是我的类,但我如何引用这个匿名函数来取消订阅?
socket.removeListener('user:join', ????);
我试过这个:
let self;
class RoomController {
constructor() {
self = this;
}
...
}
并在方法中引用 self 但 self 是跨套接字共享的...
命名匿名函数可以解决它,但我更喜欢绑定(bind)选项。