Encuesta larga en angular 4

Necesito hacer llamadas a la API para mostrar el progreso de algo.

He creado un servicio que hace esto cada 1,5 segundos.

Componente principal

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));
}

La llamada funciona, pero continúa. Quiero dejar de hacer la llamada a la API cuando finalice el progreso (if (!data.InProgress) pero estoy atrapado en esto.

¿Cómo puedo darme de baja correctamente de este observable cuandoif (!data.InProgress)?

Gracias

Respuestas a la pregunta(2)

Su respuesta a la pregunta