forwardRef
NestJS 🟡 MidDefinition
Fonction utilitaire qui resout les dependances circulaires en retardant la resolution de la reference. Utilise un wrapper de fonction pour differer l'evaluation.
Analogie
Comme dire 'je te presenterai mon collegue quand il arrivera' plutot que d'exiger sa presence immediate.
Exemple de code
@Injectable()
export class CatService {
constructor(
@Inject(forwardRef(() => DogService))
private dogService: DogService,
) {}
}
Cas d'usage
Resoudre les dependances circulaires entre deux services ou modules qui se referent mutuellement.
Anti-pattern
Utiliser forwardRef comme solution par defaut au lieu de repenser l'architecture pour eliminer les cycles.