So habe ich eine Versprechen-Kette, die eine bestimmte Rückruf-Hölle löst, die ich erlebte.Mischen von Variablen in einer Versprechenskette
Hier ist, was die Kette wie folgt aussieht:
server.exchange(oauth2orize.exchange.password(
function(client, email, password, scope, done) {
users.findOne({email: email})
.then(authenticateUser) // mix in password here?
.then(deleteExistingTokens)
.then(createAndSaveNewTokens)
.then(function(results){
done(null, results[0], results[1], {'expires_in': tokenLife});
}).catch(err => {done(err);});
}));
So users.findOne ein Versprechen gibt, die meine Benutzer zurückgibt. Ich muss das Passwort "einmischen", um sich zu authentifizieren. Da dies meine Definition von authenticateUser ist, wie würde ich neue Variablen in die Kette einfügen?
const authenticateUser = (err, user) => { // add password here?
return Promise((resolve, reject) => {
if (!user) {
reject('User not found');
}
try {
return User(user).authenticate(password)
.then((result) => {
if (result) {
resolve(user);
} else {
reject('Invalid password');
}
});
}
catch (err) {
reject('Invalid user');
}
});
};
Diese Definition von 'authenticateUser' nicht kompatibel ist mit dem es mit' then', oder mit dem Übertragen von 'password' hinein. Es muss aktualisiert werden. –
Was mache ich falsch? –
Ich habe es meiner Antwort hinzugefügt. –