Ich habe Probleme beim Refactoring des folgenden Codeblocks in separate Funktionen.Refactoring verschachtelte Funktionen mit Pfeilfunktionen
socketHandler = (io) => {
io.on('connection', (socket) => {
socket.on('doLogin', data => {
userService.getUserByName(data.uname)
.then((doc) =>{
if(doc && doc.pwd===data.pwd){
socket.emit('onLogin', {status:'SUCCESS'});
}
}, (error) => {
socket.emit('onLogin', {status:'Error in the application'});
});
});
});
}
app.configure(socketio(socketHandler));
Ich habe versucht, den obigen Code wie folgt zu refactoring.
doLogin = data => {
userService.getUserByName(data.uname)
.then((doc) =>{
if(doc && doc.pwd===data.pwd){
socket.emit('onLogin', {status:'SUCCESS'});
}
}, (error) => {
socket.emit('onLogin', {status:'Error in the application'});
});
}
socketHandler = (io) => {
io.on('connection', (socket) => {
socket.on('doLogin', doLogin);
});
}
app.configure(socketio(socketHandler));
Ich bekomme einen Laufzeitfehler, da Socket nicht definiert ist.
Wie erhalten Sie einen Verweis auf "Socket" in der Funktion "doLogin"?
Ich habe auch den folgenden Weg versucht und konnte es nicht funktionieren.
doLogin = socket => data => {
versuchte sich auch als
socket.on('doLogin', doLogin.bind(socket));
folgt bei der Festsetzung dieser etwas Hilfe benötigen.
Danke.