我想知道如何使用箭头函数来代替绑定(bind)。据我了解,我可以使用箭头函数在函数中按词法调用 this
,但该函数甚至不再被调用。
奇怪的是我没有收到任何错误,如果我使用箭头函数,它只会默默地失败。
constructor(socket: SocketIO.Socket
{
// Works
socket.on(this.onLogin.name, this.onLogin.bind(this));
// Doesn't work?
socket.on(this.onLogin.name, (data: LoginDetails) => this.onLogin);
}
public onLogin(loginDetails: LoginDetails) {
console.log(this.onLogin.name + " " + this.socketID);
}
最佳答案
你必须在箭头函数中调用函数。
socket.on(this.onLogin.name, (data: LoginDetails) => this.onLogin(data));
关于javascript - 在 socket.io 中使用箭头函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41472127/