【发布时间】:2020-07-03 23:50:48
【问题描述】:
我正在开发一个快速应用程序并尝试在我的路线中使用 asyn/await。现在,在我看来,它似乎没有等待 findOneUser 调用返回,而是跳到下一行:
app.post ('/api/authenticate', async(req, res) => {
console.log('GET TO AUTHENTICAE')
const { email, password } = req.body;
const user_db = await users.findOneUser( email );
console.log("user_db", user_db)
return user_db
});
const findOneUser = (email) => {
console.log("email", email)
pool.query('SELECT * FROM users where email = $1', [email], (error, results) => {
if (error) {
throw error
}
console.log("RESULT", results.rows)
results.rows
})
}
这是我在终端中的日志,您可以看到 user_db_log 显示在 RESULT 日志之前,但我对 async/await 的理解是 user_db 代码应该等待 user.findOneUser 方法运行:
去认证
电子邮件example@outlook.com
user_db未定义
RESULT
[
{
id: 11,
first_name: 'Test',
last_name: 'User',
email: 'testuser@test.com'
}
]
【问题讨论】:
-
在 findOneUser 中添加异步
标签: javascript express async-await