【发布时间】:2019-10-07 22:27:30
【问题描述】:
我正在尝试在 NestJS 应用中使用公牛竞技场。
export class AppModule {
configure(consumer: MiddlewareConsumer) {
const queues = this.createArenaQueues();
const arena = Arena({ queues }, { disableListen: true });
consumer.apply(arena).forRoutes('/system/queues');
}
createArenaQueues() {
return [
{
name: 'Notification_Emailer',
hostId: 'MyAwesomeQueues',
url: 'redis://localhost',
},
];
}
}
这行得通!
但我需要对createArenaQueues() 使用 async/await,因为要从 db 加载队列。
export class AppModule {
configure(consumer: MiddlewareConsumer) {
const queues = await this.createArenaQueues(); //await here
const arena = Arena({ queues }, { disableListen: true });
consumer.apply(arena).forRoutes('/system/queues');
}
async createArenaQueues() { // async here
return [
{
name: 'Notification_Emailer',
hostId: 'MyAwesomeQueues',
url: 'redis://localhost',
},
];
}
}
没用!
那么问题来了,怎么处理呢?
从“系统”控制器运行竞技场会很酷,但我想不出办法。
另外,我尝试将 arena 移至独立中间件,但不知道我到底应该做什么:返回类似 res.send(arena) 之类的东西?
处理这个问题的最简单方法是async 配置支持,但它没有实现。
【问题讨论】:
标签: javascript node.js typescript express nestjs