Вам необходимо использовать reportProgress: true
, чтобы показать какой-либо прогресс по любому запросу HTTP
.Если вы хотите увидеть all events, including the progress of transfers
, вам нужно также использовать опцию observe: 'events'
и вернуть Observable
типа HttpEvent
.Тогда вы можете поймать все events(DownloadProgress, Response..etc)
в методе компонента. Более подробную информацию можно найти в Официальная документация на английском языке .
downfile(file: any): Observable<HttpEvent<any>>{
return this.http.post(this.url , app, {
responseType: "blob", reportProgress: true, observe: "events", headers: new HttpHeaders(
{ 'Content-Type': 'application/json' },
)
});
}
Затем в компоненте вы можете поймать все events
, как показано ниже.
this.myService.downfile(file)
.subscribe(event => {
if (event.type === HttpEventType.DownloadProgress) {
console.log("download progress");
}
if (event.type === HttpEventType.Response) {
console.log("donwload completed");
}
});
Найти HttpEventTypes Here.