如何在 node.js 中将回调转换为异步等待

问题描述

这里我想通过调用 getDataFromdb

在另一个模块中使用 vertica 数据
async function getDataFromdb() {
  const connection = await vertica.connect(config);
  const result = connection.query('select * from person',(err,result) => {
    if (result) {
      verticadata = map(result);
      console.log(verticadata);
      return verticadata;//->returning from callback
    }
    console.log(result);//->Here i want data but giving the connection details
  });
}

但后来知道我不能从回调中返回vertica数据,我们需要将回调函数传递给它,它会在完成后执行我改成这样

async function getDataFromdb(fn) {
  const connection = await vertica.connect(config);
  const result = connection.query('select * from person',result) => {
    if (result) {
      verticadata = map(result);
      fn(verticadata);
      return verticadata; //->returning from callback
    }
    console.log(result); //->Here i want data but giving the connection details
  });
}

function get(fn) {
  getDataFromdb(verticaData => fn(verticaData));
}

我已经导出了上面的 get 函数并在下面的另一个模块中使用了它

getEx() {
  get(function(verticaData) {
      console.log(verticaData)
      //But i want to return the value out of this
    }
  }
}

但我想再次将值返回给 getEX。再次像上面的场景

当我知道使用 async/await 之后就很容易了

async function getDataFromdb() {
  const connection = await vertica.connect(config)
  const result = await connection.query("select * from person")
  console.log(result) -- > giving the connection details not the data how to work on this
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)