无法访问异步函数外的变量[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法访问异步函数外的变量[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

如何在函数外部访问结果变量。


con.query(
    "SELECT * FROM table WHERE particulars = 'data'",
    (error, results) => {
      if (error) {
        return console.error(error.message);
      }
      console.log(results);
    }
  );

Console.log在函数内工作正常,但是当我返回结果变量以在函数外部使用它时,我得到一个未定义的变量。我知道我应该使用像异步函数这样的东西,但在这种情况下我无法弄清楚如何使用它。

先感谢您。

答案

如果你需要使用async-await它应该是:

async function getParticulars() {
    const results = await con.query("SELECT * FROM table WHERE particulars = 'data'");
   //Process results here 
}

我知道我的答案非常抽象,但它应该引导你找到答案。为了让您更深入地了解这个async代码,我需要知道您使用什么库来查询数据库。干杯,sigfried。

另一答案

您可以将结果返回给变量

const results = con.query(
    "SELECT * FROM table WHERE particulars = 'data'",
    (error, results) => {
      if (error) {
        return console.error(error.message);
      }
      return results
    }
  );

以上是关于无法访问异步函数外的变量[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用范围外的javascript变量? [重复]

如何访问块外的变量? [复制]

如何访问公用文件夹外的图像(Laravel)[重复]

利用eval()来“欺骗”JavaScript词法作用域

Swift-使用完成处理程序更新闭包外的全局变量

如何从片段 KOTLIN 中调用意图 [重复]