【发布时间】:2021-07-07 05:12:18
【问题描述】:
今天我试图用一个函数从 mysql 获取一些数据,当我 console.log 函数内的值时,都正确返回,但如果我 return <value>,它返回 undefined(rows[0] 是一个对象),例如:
function getData(userID, guildID) {
connection.connect();
this.guildID = guildID ?? null
this.userID = userID ?? null
connection.query(`SELECT * FROM data_${this.guildID} WHERE id = '${this.userID}'`, (err, rows, fields) => {
if(err) throw err;
connection.end()
this.data = rows[0]
return this.data;
})
}
当我console.log(getData(etc, etc))时返回未定义
但如果我这样做:
function getData(userID, guildID) {
connection.connect();
this.guildID = guildID ?? null
this.userID = userID ?? null
connection.query(`SELECT * FROM data_${this.guildID} WHERE id = '${this.userID}'`, (err, rows, fields) => {
if(err) throw err;
connection.end()
this.data = rows[0]
console.log(this.data);
})
}
它工作得非常好,记录如下:
RowDataPacket {
id: '573991320897716224',
bank: '0',
wallet: '0',
unlimited: '0'
}
【问题讨论】:
标签: javascript mysql arrays object