我在 MySQL 查询结果callback函数中设置了一个变量,以便稍后可以访问它,但是如果我尝试if(!data)在下一步中执行它,它data会说未定义。await connection.query('SELECT * FROM `licenses` WHERE `licensekey` = ?', [key], function (error, results, fields) { let data = results[0] })关键变量已正确定义,我可以console.log(results[0])在该函数内部执行操作。
1 回答
狐的传说
TA贡献1804条经验 获得超3个赞
有一个callback传递给.query函数。await不会callback在这里等待被处决。
尝试将其包裹在里面Promise,如下所示
const data = await new Promise((resolve, reject) => {
connection.query('SELECT * FROM `licenses` WHERE `licensekey` = ?', [key], function (error, results, fields) {
if (error) reject(error);
else resolve(results[0]);
});
});
if(!data) {
// ...
}
添加回答
举报
0/150
提交
取消