nestjs - 相互注入网关和服务/循环依赖
问题描述
我在同一个模块中有一个Gateway
和另一个Service
,网关需要访问服务才能工作,但我也想将网关注入需要引用以将事件直接发送到客户端的服务中。
仅以一种方式进行注射是有效的,但不是两种方式都有效。
这是可能的还是首选的解决方案是什么?只保留一种方式注入并将另一种方式添加为回调?
解决方案
您是否尝试使用Circular Dependencies解决此问题?
通常你只需要forwardRef
在两个可注入类中使用
@Injectable()
export class CatsService {
constructor(
@Inject(forwardRef(() => CommonService))
private commonService: CommonService,
) {}
}
@Injectable()
export class CommonService {
constructor(
@Inject(forwardRef(() => CatsService))
private catsService: CatsService,
) {}
}
推荐阅读
- java - 我正在尝试导航优化路线,但在 Logcat 中出现错误
- apache - 如何使用 htaccess 从 URL 中删除子文件夹
- java - 如何使用 Moshi 模型对象构建 GraphQL 请求
- regex - 网站路径导致使用网站名称出现问题
- php - 在 Laravel 中将类名传递给视图的常见做法
- dart - 在 Dart 的 await-for 循环中如何(并且应该?)取消一个流?
- android - Android Studio 未显示构建变体
- java - Firebase:我使用的结构是否正确?
- vue.js - 在 vue.js 中渲染时删除最后一项
- reactjs - React 组件的 Typescript 道具类型的语法?