typescript - 如何将“then”回调函数的结果返回到 loopback 4 控制器
问题描述
我正在尝试在我的 loopback4 控制器内的 TypeORM 实体上执行“查找”功能。
问题是,根据 TypeORM 文档,我已经在附加到“createConnection”函数的“then”回调函数中执行了查询。因此,“findOne”调用的结果超出了控制器方法的范围
//this is the controller method signature
async findById(@param.path.number('id') id: number): Promise<Pratica> {
createConnection({
type: 'oracle',
host: '10.64.2.226',
port: 1521,
sid: 'NPRA02S',
username: 'sua03e',
password: 'iniziale',
entities: [
Pratica
],
logging: true
}).then(async connection => {
let praticaRepository = connection.getRepository(Pratica);
// I have to return this as a result parameter in the controller
let pratica = await praticaRepository.findOne({ protocolloaci: id });
}).catch(error => console.log(error));
}
我也尝试过以下方法,但我会知道如何在没有 async/await 的情况下进行管理
//this is the controller method signature
async findById(@param.path.number('id') id: number): Promise<Pratica> {
let connection = await createConnection({
type: 'oracle',
host: '10.64.2.226',
port: 1521,
sid: 'NPRA02S',
username: 'sua03e',
password: 'iniziale',
entities: [
Pratica
],
logging: true
})
let praticaRepository = connection.getRepository(Pratica);
return await praticaRepository.findOne({ protocolloaci: id }) || new Pratica;
}
先感谢您
解决方案
试试下面的代码
async findById(@param.path.number('id') id: number): Promise<Pratica> {
return new Promise( (resolve)=>{
createConnection({
type: 'oracle',
host: '10.64.2.226',
port: 1521,
sid: 'NPRA02S',
username: 'sua03e',
password: 'iniziale',
entities: [
Pratica
],
logging: true
}).then(async connection => {
let praticaRepository = connection.getRepository(Pratica);
// I have to return this as a result parameter in the controller
const pratica = await praticaRepository.findOne({ protocolloaci: id });
resolve(pratica); // return using resolve
}).catch(error => console.log(error));
});
}
推荐阅读
- python - 谷歌 colab 上的先知返回 - 错误:KeyError:'metric_file'
- rust - 计算磁盘使用百分比以匹配 df Use% 输出
- ios - 为 Swift 二进制框架启用模块稳定性时 dyld 崩溃
- vue.js - vue-highcharts 动态主明细图示例
- encoding - 谷歌标签管理器:将 dataLayer 数据发送到谷歌分析时文本格式错误
- python - 如何在彩色图像中均匀照明?
- hadoop - 在大型 (50 GB) 数据集上没有 Partition BY 子句的 Hive 窗口函数 ROW_NUMBER 非常慢。有没有更好的优化方法?
- .net-core - 从 AWS Lambda 函数 (.NET Core) 访问本地文件
- amazon-web-services - aws s3 没有标题并将文件的扩展名从 xls 更改为 .csv
- api - 如何在 Drupal 7 中使用 rest 和 soap api