اگر با ارور circular dependency
در nestjs مواجه شدیم باید چکار کنیم؟
- نفیسه افقی 2 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
ارور circular dependency
وقتی بوجود می آید که مثلاً در module A از module B استفاده کنیم و در module B هم از module A.
گرچه بهتر است تا جای ممکن از معماری که باعث circular dependency در کدهایمان می شود جلوگیری کنیم (چون ممکن است در scale های بالا به مشکل بخوریم)، ولی با کمک forwardref
می توانید این ارور را برطرف کنید: (باید داخل Module A و Module B ، و همچنین Service A و Service B از forwardref
استفاده کنید)
ModuleA:
@Module({
imports:[forwardRef(() => ModuleB)],
providers: [ServiceA],
controllers: [ControllerA],
exports:[ServiceA]
})
ServiceA:
@Injectable()
export class ServiceA {
constructor(@Inject(forwardRef(() => ServiceB))
private serviceB: ServiceB){}
}
ModuleB:
@Module({
imports:[forwardRef(() => ModuleA)],
providers: [ServiceB],
controllers: [ControllerB],
exports:[ServiceB]
})
ServiceB:
@Injectable()
export class ServiceB {
constructor(@Inject(forwardRef(() => ServiceA))
private serviceB: ServiceA){}
}
- نفیسه افقی 2 سال قبل پاسخ داد
- آخرین ویرایش 2 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید