Search code examples
angulartypescriptservicepolling

Adding polling mechanism to a http call in Angular 8


Given a service that is requesting an object (type Status) and expects a response with info for a JOB_ID passed as an argument, how could I add polling mechanism in order to get this call done every minute?

  fetchJobLastStatus$(JOB_ID): Observable<Status> {
  const url = `//API CALL//`;
    return this.http.get<Status>(url).pipe(
      map(data => {
        if (data) {
          console.log(data)
        }
        return <Status>data;
      })
    );
  }

Solution

  • Polling http call for every minute.

    fetchJobLastStatus$(JOB_ID): Observable<Status> {
      const url = `//API CALL//`;
      return timer(0, 60000).pipe(switchMap(_ => this.http.get<Status>(url)));
    }