【发布时间】:2021-01-25 20:20:20
【问题描述】:
我正在使用 node-firebird JavaScript 模块来查询 Firebird 数据库。
模块通过回调进行响应,但我无法让 async / await 为我工作以等待来自该模块的响应。
“padron.controller”控制器调用“padron.service”服务进行查询
try {
let res = await this.padronService.getFamilia(body);
console.log('padron.controller - Response from padron.service', res);
return res;
} catch {
throw new Error('Erro na DB');
}
“padron.service”调用“firebird.service”,将所有查询集中到数据库。
try {
let res = await this.firebirdService.getQuery(query, params);
console.log('padron.service - Response from FirebirdService ================', res);
return res;
} catch {
throw new Error('Erro na DB');
}
“firebird.service”使用“node-firebird”库并返回回调。
fb.attach(this.options, (err, db) => {
if (err) throw new Error('Erro na conexión á DB');
db.query(query, params, (err, res) => {
if (err) throw new Error('Erro na consulta ó Padrón');;
console.log('firebird.service - Response DB ================', res);
db.detach();
return res
});
});
我的问题是答案的顺序
padron.service - Response desde FirebirdService ================ undefined
padron.controller - Response desde padron.service undefined
firebird.service - Response DB ================ {
USU_USUARIO: 'SUPER',
USU_CLAVES: '',
USU_CARGO: 'ADMINISTRADOR',
USU_TER: null,
什么时候该下订单
firebird.service - Respuesta DB ================ {
USU_USUARIO: 'SUPER',
USU_CLAVES: '',
padron.service - Respuesta desde FirebirdService ================ undefined
padron.controller - Respuesta desde padron.service undefined
await 不等待来自数据库的回调
我不知道如何解决它。
【问题讨论】:
-
@Apicito Diaz,我已经添加了答案,让我知道它是否有效
标签: typescript async-await firebird