簡體   English   中英

回調 function 內部的變量集無法在外部訪問

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM