J'essaie donc de créer une barre de progression précise qui se remplit en fonction de mon appel ajax.
Ce site aidé mais je pense que les choses ont peut-être un peu changé depuis qu'il a été écrit.
J'ai donc mon CustomBrowserXhr que j'ai ajouté aux fournisseurs de mon module d'application pour remplacer le BrowserXhr :-.
@Injectable()
export class CustomBrowserXhr extends BrowserXhr {
constructor(private service: ProgressService) {}
build(): any {
let xhr = super.build();
xhr.onprogress = (event) => {
console.log(event, "event inside browser override");
this.service.progressEventObservable.next(event);
};
return <any>(xhr);
}
}
Je dispose alors d'un service de progression très basique auquel d'autres composants peuvent s'abonner :-.
@Injectable()
export class ProgressService {
progressEventObservable:Subject<any> = new Subject();
progressEvent$ = this.progressEventObservable.asObservable();
}
Je pensais que je pourrais simplement faire des appels http et que je verrais le journal de la console "event inside browser override" - en l'état actuel des choses, j'obtiens simplement l'erreur "EXCEPTION : browserXHR.build is not a function". Quelqu'un peut-il m'éclairer sur ce qui ne va pas ici ?
Merci d'avance.