【发布时间】:2017-02-24 20:04:24
【问题描述】:
我在 JavaScript 类和 socket.io 'disconnect' 事件中的正确上下文存在问题。
我的班级是这样的:
class GameSession {
constructor(gameSessionId) {
this._gameSessionId = gameSessionId;
this._players = new Map();
}
addPlayer(socketId,player) {
this._players.set(socketId,player);
this.addListeners(player);
}
addListeners(player) {
player.socket.on('disconnect',this.playerLeave);
}
playerLeave () {
// ##### here is my Problem
}
}
在“playerLeave”函数中,我可以使用“this.id”访问套接字 id。但是要访问“_players”地图,我需要将“addListeners”函数更改为:
addListeners(player) {
player.socket.on('disconnect',() => this.playerLeave());
}
但是这样我就失去了事件的上下文,因此可以调用“this.id”来接收套接字 id。
我怎样才能两者兼得?
【问题讨论】:
标签: javascript node.js class socket.io