اگر با ارور circular dependency در nestjs مواجه شدیم باید چکار کنیم؟
- نفیسه افقی 3 سال قبل سوال کرد
- شما باید برای ارسال دیدگاه وارد شوید
ارور 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){}
}
- نفیسه افقی 3 سال قبل پاسخ داد
- آخرین ویرایش 3 سال قبل
- شما باید برای ارسال دیدگاه وارد شوید