안녕하세요 아무것도 약속 여기에 사용되는 방식에 문제가 보인다,이 첫 번째 실행을 위해 작동하지만 나는 다시 시도 할 때 휴식 것으로 보인다가능한 약속 문제는
socket.on('new user', function(data, callback) {
return getUsersFromDb()
.then(function() {
if (users.name.indexOf(data) > -1) {
callback(false);
reject(err);
}
else {
callback(true);
// socket.nickname = data;
// people[socket.nickname] = socket;
updateNicknames();
var user = new User();
user.name = data;
user.save(function(err, data) {
if (err) {
console.log(err)
}
else {
return getUsersFromDb()
.then(function() {
updateNicknames()
})
.catch(function(e) {
console.log("Error", e)
})
}
});
socket.broadcast.emit('user join', {nick: socket.nickname});
}
})
.catch(function(e) {
console.log("Error", e)
})
});
숭고한는 다음 색상을 보인다 잘못 사용 된 것처럼 다르게 두 번째 else를 잡습니다.
무엇이'socket' 변수입니까? socket.io 연결입니까? 아니면 평범한 소켓 연결인가? 또한, 왜 당신은'거부 (오류)'라고 부릅니까? 'reject()'는 어디에 정의되어 있습니까? 그리고, 왜'socket.on()'콜백의 두번째 인자가 콜백 그 자체라고 생각합니까? 'updateNicknames()'는 무엇을합니까? 작동하지 않을 때 어떤 디버깅을 했습니까? 어떤 코드 경로가 필요한지 알고 있습니까? 어떤 오류가 발생합니까? 이것은 요소 디버깅을 먼저 수행해야하는 것처럼 들리므로 코드가 잘못된 부분을 정확하게 알려줄 수 있습니다. – jfriend00
코드가 실제로 재구성되어야하며, 무엇을 반환해야합니까? u는 여러 개의 비동기 호출이 있고 약속을 전달해야합니다. –