【发布时间】:2021-10-07 08:07:03
【问题描述】:
我正在尝试使用 Async/Await 查询我的 mysql 数据库的值,但我的常量“映射”总是返回未定义,我不太清楚为什么
const get_map = () =>{
db.query('SELECT game,game2 FROM battles WHERE player1=? OR player2=?',[result.char,result.char],(err,results)=>{
if(err){
return(err)
}
if(!results[0]){
return('No such battle?')
}
console.log(results[0])
return(results[0])
})
}
const proccessTurn = async ()=>{
const map = await get_map()
console.log(map)
let game = JSON.parse(map.game)
let game2 = JSON.parse(map.game2)
const char = result.char
const playerTurn = game2.turn[0]
}
控制台甚至不记录
console.log(results[0])
这一行那么为什么 await 函数在它实际返回之前解析呢?不应该等回报吗?
感谢您的帮助
【问题讨论】:
-
从
get_map中删除{...}或将其更改为return db.query(...),它应该可以正常工作。 -
@ulou 问题是什么,您的建议如何解决?
-
问题是他忘了
return,我觉得这个解释已经够好了。
标签: javascript mysql node.js asynchronous async-await