今天我收到了这么多 Promise { <pending > } 我不知道为什么,所以我尝试console.log()
了一些事情,我发现 getData() 在 queryDatabase() 之前返回,有人可以解释我为什么,以及什么我可以修复它吗?我需要在 getData() 之前返回 queryDatabase() 数据,因此承诺不会返回待处理,这是我的代码:
(connection
是一个MySQL连接池)
async function getData(userID, guildID) {
this.guildID = guildID ?? null
this.userID = userID ?? null
this.data = await queryDatabase({guildID: this.guildID, userID: this.userID})
console.log('foo 2')
return this.data;
}
function queryDatabase(payload) {
connection.getConnection((sqlerr, con) => {
return new Promise((resolve, reject) => {
con.query(`(My mysql query)`, (err, rows, fields) => {
if(err) reject(err);
con.end()
resolve(rows[0]);
console.log('foo')
})
});
})
}