如何使用forwardRef()进行循环依赖?我按照文档做了同样的事情,但没有成功,它给了我这个错误: GroupModule“imports”数组索引 [1] 处的模块未定义。
潜在原因:
- 模块之间的循环依赖。使用forwardRef() 可以避免这种情况。了解更多:https://docs.nestjs.com/fundamentals/circular-dependency
- 索引 [1] 处的模块属于“未定义”类型。检查您的导入语句和模块的类型。
范围 [AppModule -> EntityModule -> BranchModule] +91ms
最佳答案
当两个模块相互调用时,就会发生循环依赖,例如,如果我有一个动物模块和一个猫模型相互调用:
在animal.module.ts中:
import { forwardRef, Module } from '@nestjs/common';
import { AnimalController } from './animal.controller';
import { AnimalService } from './animal.service';
import { AnimalRepository } from './animal.repository';
@Module({
imports: [
forwardRef(() => CatModule),
],
controllers: [AnimalController],
providers : [AnimalService, AnimalRepository],
exports : [AnimalService],
})
export class AnimalModule { }
在cat.module.ts中:
import { forwardRef, Module } from '@nestjs/common';
import {CatController } from './cat.controller';
import { CatService } from './cat.service';
import { CatRepository } from './cat.repository';
@Module({
imports: [
forwardRef(() => AnimalModule),
],
controllers: [CatController],
providers : [CatService, CatRepository],
exports : [CatService],
})
export class CatModule { }
在animal.service.ts中:
export class AnimalService {
constructor(
@Inject(forwardRef(() => CatService)) private readonly catService: CatService,
) {
}//rest of code here}
在cat.service.ts中:
export class CatService {
constructor(
@Inject(forwardRef(() => AnimalService)) private readonly animalService: AnimalService,
) {
}//rest of code here}
关于javascript - 如何使用forwardRef()进行循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64138396/