2017-01-04 4 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 минут. Не могу поверить, что я пропустил это. –

Смежные вопросы