The best practice for subscribing to services is in ngOnInit() lifeCycle hook method,
you can read this in the official documentation about angular services: example getHeroes
service:
Tutorial about services
Call it in ngOnInit
While you could call getHeroes() in the constructor, that's not the best practice.
Reserve the constructor for simple initialization such as wiring constructor parameters to properties. The constructor shouldn't do anything. It certainly shouldn't call a function that makes HTTP requests to a remote server as a real data service would.
Instead, call getHeroes() inside the ngOnInit lifecycle hook and let Angular call ngOnInit at an appropriate time after constructing a HeroesComponent instance.
ngOnInit() {
this.getHeroes();
}