【发布时间】:2020-03-25 00:43:06
【问题描述】:
我关注了有关 pubsub/subsciprtions 的 Nestjs DOCS:
根据示例,pubsub 在给定解析器的顶部初始化:
const pubSub = new PubSub();
后来文档说:
“我们在这里使用了本地 PubSub 实例。相反,我们应该将 PubSub 定义为提供者,通过构造函数注入它(使用 @Inject() 装饰器),并在整个应用程序中重用它”
{
provide: 'PUB_SUB',
useValue: new PubSub(),
}
这会去哪里?
IE。如何在我的主 app.module 中提供它以便在所有其他模块中都可用的语法/方法是什么?
如果我尝试在不同的模块中将此作为依赖项提供,我会遇到依赖项解析问题。 app.module
providers: [
AppService,
{
provide: APP_FILTER,
useClass: AllExceptionsFilter,
},
{
provide: 'PUB_SUB',
useValue: new PubSub(),
},
some-resolver.js
constructor(
@Inject('PUB_SUB')
private pubSub: PubSub,
给出: Nest 无法解析 MyResolver 的依赖项( MyResolver 由 MyModule 提供
我无法将 appmodule 导入 MyModule,否则我将创建循环依赖。
我是否定义了一个只提供 pub_sub 实例的新模块?
【问题讨论】:
标签: dependency-injection publish-subscribe nestjs