How to delay a method call in Angular ? How to make the API call once user has finished typing ?

Assuming that you have the following Angular code sample,

this.formGroup.get('employee').valueChanges
    .subscribe(response => {
      this.makeAPICall();
    })

So each time the user enters a key the API call is called, which is not required. You can debounceTime to delay the method call.

import { debounceTime } from 'rxjs/operators';

this.formGroup.get('employee').valueChanges
    .pipe(debounceTime(1000))
    .subscribe(response => {
      this.makeAPICall();
    })