I need to make API calls to display the progress of something.
I created a service that does this every 1.5 seconds
Main component
private getProgress() { this.progressService.getExportProgress(this.type, this.details.RequestID); }
Services.ts
public getExportProgress(type: string, requestId: string) { Observable.interval(1500) .switchMap(() => this.http.get(this.apiEndpoint + "Definition/" + type + "/Progress/" + requestId)) .map((data) => data.json().Data) .subscribe( (data) => { if (!data.InProgress) //Stop doing this api call }, error => this.handleError(error)); }
The challenge works, but it continues to move. I want to stop making an API call when progress is complete ( if (!data.InProgress ), but I'm stuck on this.
How can I correctly discard this observable when if (!data.InProgress) ?
thanks
source share