Вы не должны вызывать функцию компонента из службы.
Однако вы можете создать тему в сервисе и подписаться на нее из компонента.
В этом случае после прохождения callfunction2
он выдает значение id для субъекта, и все компоненты, которые подписываются на этот субъект, получат значение
@Component({
selector:'component'
})
export class Component{
constructor(private service: Service) {}
function2(id){
this.service.subject.subscribe(id => {
console.log('ID printed ' + id);
});
}
}
@Injectable()
export class Service {
public subject: Subject<any> = new Subject<any>();
callfunction2(id) {
this.subject.next(id);
}
}