猿问

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

我在 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])在该函数内部执行操作。


慕运维8079593
浏览 106回答 1
1回答

狐的传说

有一个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) {  // ...}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答