我正在尝试使用sequelize从phpmyadmin中的数据库中获取一些信息,但是当我尝试返回值时,我得到了“未定义”。如果我尝试console.log数据,它似乎很好。我真的不明白问题出在哪里。
更新:我已经尝试使用await getTweetInfo(),但是收到一条错误消息,提示“ await仅在异步函数中有效”。我需要该查询为另一个函数返回的字符串。
async function getTweetInfo(){
const data = await sequelize.query('SELECT contenido FROM tweets WHERE id = ?',
{replacements: [2], type:sequelize.QueryTypes.SELECT})
return data
}
getTweetInfo()
答案 0 :(得分:2)
async function getTweetInfo(){
const data = await sequelize.query('SELECT contenido FROM tweets WHERE id = ?',
{replacements: [2], type:sequelize.QueryTypes.SELECT})
return data
}
console.log(await getTweetInfo());
[更新] 我以为这很明显,但让我考虑一下。
我给出的示例正在等待函数结果并将其显示在console.log()
中答案 1 :(得分:2)
getTweetInfo返回一个承诺。
尝试:
getTweetInfo().then(data => console.log(data))
或使用await
await getTweetInfo()
答案 2 :(得分:0)
获得结果的原因是将console.log(data)
放在await
之后。它将等待查询,直到完成为止,然后在您的console.log(data)
旁边。这就是为什么您得到结果。
async function getTweetInfo(){
return sequelize.query('SELECT contenido FROM tweets WHERE id = ?',
{replacements: [2], type:sequelize.QueryTypes.SELECT})
}
var data = await getTweetInfo()
console.log(data)