How to load data lazy to select list?

I have tried to load data lazy to mat-select when user clicks over.

My service is:

    providedIn: 'root',
export class EmployService {
    public employers = new Map<number, EmployeeDepartment[]>();

    constructor(private http: HttpClient) {}

    loadDepartmentEmploy(id: number): void {
        if (!depid) {
            throw 'No departament id passed!';

        if (!this.employers.has(depid)) {
            this.http.get<EmployeeDepartment[]>(`${environment.apiUrl}/employes?id=${id}`).subscribe((response) => {
                this.employers.set(id, response);

    get(id: number): EmployeeDepartment[] {
        return this.employers.get(id);

    update(data: EmployUpdate): Observable<any> {
        return<EmployeeDepartment[]>(`${environment.apiUrl}/allocation/updateexecutors`, data);

Component is:

export class DropdownExecutorsComponent implements OnInit {
    public dropDownControl = new FormControl();
    public employers: EmployeeDepartment[] = [];

    @Input() depid: number;
    @Output() onSelected = new EventEmitter<EmployeeDepartment>();

    constructor(private employService: EmployService) {}

    ngOnInit() {}

    choose() {
      try {
        this.employers = this.employService.get(this.depid);
      } catch (e) {

Template is:

<div *ngFor="let item of [1,2,3,4]">
    <mat-select [formControl]="dropDownControl" (click)="choose()" multiple>
       <mat-option *ngFor="let employer of employers" [value]="employer">{{ }}</mat-option>

When user clicks over mat-select it invokes choose() that requets the service.

The service checkes if data already loaded.

I dislike this solution because service has two the same methods, that I have tried to combine:

loadDepartmentEmploy(id: number);
get(id: number);

How to improve that and combine methods?

Source: New feed
Source Url How to load data lazy to select list?