Angulaire 2 barre de progression en temps réel

Dans mon Angulaire 2 de l'application, j'ai souscrit à un service simple d'extraire des données à partir d'une base de données à distance et de les afficher dans un tableau. Tout fonctionne très bien et maintenant je veux ajouter une barre de progression pour afficher le temps réel progrès pour la récupération de données à partir du serveur.
Je suis actuellement en utilisant primeng progressbar composant pour montrer le progrès. Mais Il ne peut être fourni qu'un temps fixe pour afficher la progression comme dans le code ci-dessous,

ngOnInit() {
    let interval = setInterval(() => {
        this.value = this.value + Math.floor(Math.random() * 10) + 1;
        if(this.value >= 100) {
            this.value = 100;
            this.msgs = [{severity: 'info', summary: 'Success', detail: 'Process Completed'}];
            clearInterval(interval);
        }
    }, 2000);
}

2000 correspond à la durée (en millisecondes) de la barre de progression est affichée.
Mais ce dont j'ai besoin n'est-ce pas, j'ai besoin d'afficher la barre de progression à l'origine et remplir la barre de progression de manière dynamique et en temps réel jusqu'à ce que les données réelles d'extraction terminée. La barre de progression doit être rempli et de l'invisible après l'extraction de données complète et juste avant que les données rendues à la vue de la table.

Est-il logique de faire d'autres que de fournir la statique de temps pour que la barre de progression? Toutes les solutions autres que primeng sont les bienvenus.

Merci d'avance.

Mise à jour:

Ma classe de service,

@Injectable()
export class MyService {
    constructor(public http:Http) {
    }

search(criteria:SearchObject):Observable<ResponseObject>{
    let headers = new Headers({ 'Content-Type': 'application/json' });
    let options = new RequestOptions({ headers: headers });    
    return        this.http.post(URL,JSON.stringify(criteria),options)
      .map(res => res.json())
}

}

Ma classe de composant,

export class SearchComponent{

    var response;
    constructor(public myService:MyService) {
    }

    search(): void {

     //Need to show the progress bar here

        var criteria = new SearchObject();
        //set data to the criteria object
       this.myService.search(criteria)
         .subscribe(
           data => {
             this.response = data;;
         },
       );            
      //close the progress bar after completing communicating with server

    }

}

OriginalL'auteur icSapper | 2016-06-03