Вызов функции компонента из службы это не лучший шаблон. Я предлагаю что-то другое. Сервис должен содержать публичную тему, а компонент должен подписаться на нее:
class Service {
public stream$ = new Subject<any>();
method() {
this.stream$.next(...);
}
}
class Component {
constructor(private service: Service) {}
onInit() {
this.service.stream$.subscribe(data => {
this.method(data);
}
}
method() {
// do stuff;
}
}
Из сервиса вы можете вызвать method
, который вызовет метод компонентов.
И конечно же помните про отписку.