私はここで私ができないチェーンを適切約束は、私のコードはできませんチェーンの約束
app.post('/login', urlencodedParser, async (req, res) => {
// authenticate is async function that return promise
model.authenticate(req.body.uname, req.body.pword)
.then(function (result) {
console.log(result);
// ... some codes
});
});
// here is the function authenticate
async function authenticate(uname, pword) {
User.find({username: uname}, 'password', function (err, result) {
if (err !== null){
return new Promise(function (resolve, reject) {
resolve(false);
});
}
else{
if (pword === result[0].password){
console.log("Correct Password!");
return new Promise(function (resolve, reject) {
resolve(true);
});
}
あるしかし、私のコンソールの出力は
undefined
Correct Password!
で、なぜ何のアイデアを得るん認証が終了する前に.then()が実装されていることを示します。 これをより良い方法でどのようにコード化できますか?どうもありがとうございました!
@ 31piy非同期機能は必ずしも待つ必要はありません。 –
'function authenticate'は何も返しません。したがって、' async function authenticate'のようにPromiseを 'undefined'に解決しました。これはあなたが見ているものです –
Thz all、私はそれを得ました – JACKY