回调函数内部设置的变量无法在外部访问

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) {
  // ...
}