0
Node에서 'user-management'패키지를 사용하고 있으며 콜백 내에서 콜백 내 콜백 내에 있습니다. 그러나 최종 결과는 반환되지 않습니다. ,콜백 내 JavaScript/NodeJS 콜백
playerModule.prototype.login = function(username, password) {
var o = this;
o.user.load(function (err) {
if (!err) {
o.user.authenticateUser(username, password, function(err, result) {
if (!result.userExists) {
console.log('Invalid username');
return "fail";
} else if (!result.passwordsMatch) {
console.log('Invalid password');
return "fail";
} else {
console.log('User token is: ' + result.token); <--- this is reached.
return result.token;
}
});
} else {
console.log('error logging in');
return "fail";
}
});
그래서 내가 "로드"기능 콜백에 값을 반환해야 같은데요 :
playerManagement.login(data.username, data.pw, function (result) {
console.log(result) <-- statement never reached
if (result == "fail") {
socket.emit('client', { type: 'login', result : 'fail'});
} else {
connections[playerindex++] = {'username' : username, 'sockid' : socket.id, 'token' : result };
socket.emit('client', { type: 'login', result : 'success', username : username });
console.log(connections);
}
});
가 그럼 난 함수의 외부 모듈이 : 이것은 내 주요 NodeJS 모듈입니다 하지만 어떻게해야할지 모르겠다.
약속을 사용해야합니다. – SLaks
콜백을 수락하려면 실제로 콜백 매개 변수가 있어야하며 호출해야합니다. – SLaks
'login' 함수 정의가 콜백을 인자로 가지지 않기 때문에 –