2017-01-04 10 views
0

bindを置き換えるのにどのように矢印関数を使うことができるのだろうかと思っていました。関数内で矢印関数を使って字句的にthisを呼び出すことができましたが、関数はもはや呼び出されません。socket.ioで矢印関数を使用する

奇妙なことに、私は矢印機能を使用するとエラーが表示されません。ただ静かに失敗します。

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); 
} 

答えて

5

矢印機能内でこの関数を呼び出す必要があります。

socket.on(this.onLogin.name, (data: LoginDetails) => this.onLogin(data)); 
+0

乾杯、私はあなたの答えを10分で受け付けます。私はこれを見落としたとは思わない。 –

関連する問題