forwardRef

NestJS 🟡 Mid

Definition

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.
#core#interview