我的代码有问题。程序每次在函数中都会跳过for循环。因此,我尝试添加异步,但是现在我一直都收到错误消息。这是错误消息:
结果=等待GetAnrede(结果)
SyntaxError:等待仅在异步功能中有效
有人可以帮我吗?预先感谢。
这是数据库 enter image description here
这是我的代码
//Anrede = Salutation
function GetAnrede(result){
for(let i = 0 ; i < result.length ; i++){
db.query(`SELECT anrede FROM tblanrede WHERE anredeid = ${db.escape(result[i].anredeid)}`,
(anredeErr, anredeResult) => {
result[i].anredeid = anredeResult[0].anrede
}
)
}
return result
}
//Lehrer = Teacher
router.get("/GetLehrer", async function(req, res, next){
db.query(`SELECT lehrerkuerzel, anredeid, vorname, nachname FROM tbllehrer`,
(err, result) => {
if(err){
return res.status(400).send({
msg: err
})
}
if(!result.length){
return res.status(400).send({
msg: "In der Datenbank sind keine Lehrer vorhanden."
})
} else {
result = await GetAnrede(result)
console.log(result)
return res.status(200).send({
result
})
}
}
)})
答案 0 :(得分:1)
尝试这样
//Anrede = Salutation
async function GetAnrede(result){
for(let i = 0 ; i < result.length ; i++){
await db.query(`SELECT anrede FROM tblanrede WHERE anredeid = ${db.escape(result[i].anredeid)}`,
(anredeErr, anredeResult) => {
result[i].anredeid = anredeResult[0].anrede
}
)
}
return result;
}
//Lehrer = Teacher
router.get("/GetLehrer", async function(req, res, next){
await db.query(`SELECT lehrerkuerzel, anredeid, vorname, nachname FROM tbllehrer`,
async (err, result) => {
if(err){
return res.status(400).send({
msg: err
})
}
if(!result.length){
return res.status(400).send({
msg: "In der Datenbank sind keine Lehrer vorhanden."
})
} else {
result = await GetAnrede(result)
console.log(result)
return res.status(200).send({
result
})
}
}
)})