回调函数内部设置的变量无法在外部访问
Variable set inside of callback function can't be accessed outside
我在 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])
。
有一个 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) {
// ...
}
我在 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])
。
有一个 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) {
// ...
}