#node.js #asynchronous #async-await #callback #asynccallback
Вопрос:
Здесь я хочу использовать данные 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
}