为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕运维8079593 2022-12-09 16:54:47
我在 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) {

  // ...

}


查看完整回答
反对 回复 2022-12-09
  • 1 回答
  • 0 关注
  • 52 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信