[英]Variable set inside of callback function can't be accessed outside
我在 MySQL 查詢結果callback
function 中設置了一個變量,以便以后可以訪問它,但是如果我在下一步嘗試執行if(!data)
,它會說data
未定義。
await connection.query('SELECT * FROM `licenses` WHERE `licensekey` = ?', [key], function (error, results, fields) {
let data = results[0]
})
關鍵變量定義正確,我可以在 function 內部執行console.log(results[0])
。
有一個callback
傳遞給.query
function。 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) {
// ...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.