javascript - 在 socket.io 中使用箭头函数

标签 javascript typescript

我想知道如何使用箭头函数来代替绑定(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/

相关文章:

javascript - Angular 2 : Event not firing

angular - 如何在 typescript Angular 4中将字符串转换为 bool 值

javascript - 如何在 MacOS 上的 Firefox 中不触发 Ctrl+LeftMouseClick 鼠标右键单击?

Javascript 模板不运行以 '}' 开头的 : SyntaxError: unexpected garbage after function body,

javascript - 从 Silverlight 设置 URL 哈希有时会失败

javascript - jQuery 递归脚本仅适用于第一个元素

angular - Angular 6。 httpClient中错误处理的正确方法

angular - 将对象放入@NgModule 中的提供者

angular - 使用 angular2 在网络浏览器上显示 shapefile map

javascript - JavaScript 类和 jQuery 对象之间的循环依赖