node.js - 如何在 node.js 中将回调转换为异步等待
问题描述
在这里,我想通过调用在另一个模块中使用 vertica 数据getDataFromdb
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', (err, 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
}
解决方案
推荐阅读
- php - 添加多个表以在 PHP 中插入查询
- elasticsearch - 按店铺服务时间排序
- java - 在使用之前,我是否必须将 sc.nextLine() 中的数据分配给变量?
- java - Cucumber - 范围报告 3 问题
- excel - VBA:'没有足够的内存来完成操作'但我觉得我的代码没有使用太多内存
- php - YII2 错误 - 需要应用程序的“id”配置
- c++ - 映射类的数据成员
- java - 再次调用上一个活动的方法 onBackPress
- react-native - 错误:购买失败,代码:8(null) React-native In-app purchase
- javascript - 如何在图表中隐藏零值的数据标签。js