Hallo dies für die erste Ausführung funktioniert, aber dann, wenn ich es erneut versuchen scheint, zu brechen nicht mit der Art und Weise etwas falsch scheinen die Versprechungen hier verwendet werdenMögliche Versprechen Ausgabe
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)
})
});
Sublime scheint die dann zu färben und Fang innerhalb der zweiten sonst anders, als ob es falsch verwendet wurde
Was ist die 'Socket'-Variable? Ist es eine socket.io-Verbindung? Oder eine einfache Steckdosenverbindung? Warum rufen Sie auch 'reject (err)' auf? Wo ist 'reject()' definiert? Und warum denkst du, dass das zweite Argument für den Callback "socket.on()" ein Callback selbst ist? Was macht 'updateNicknames()'? Welches Debugging hast du gemacht, wenn es nicht funktioniert? Weißt du, welchen Code-Pfad es braucht? Welche Fehler haben Sie? Das hört sich so an, als müssten Sie zuerst das Debuggen von Elementen durchführen, damit Sie uns genau sagen können, wo der Code falsch läuft. – jfriend00
Ihr Code muss wirklich restrukturieren, wofür kommen Sie zurück? Sie sollten dann eine Zusage machen, wenn Sie mehrere asynchrone Anrufe haben, und diese zusammenketten –