Для получения исчерпывающих данных о процессе выполнения запроса, при его инициировании необходимо задать для параметра reportProgress значение true.
Установление reportProgress в true инициирует возникновение событий HttpEvent в процессе выполнения запроса. Тип события хранится в свойстве type, значением которого является одно из значений перечисления HttpTypeEvent.
POST и PUT);GET);import {Injectable} from '@angular/core'; import {HttpClient, HttpRequest, HttpEvent, HttpEventType} from '@angular/common/http'; @Injectable({providedIn: 'root'}) export class ContactsService { constructor(private http: HttpClient){} getContactsDictionary() { const req = new HttpRequest('GET', '/api/contacts/dictionary', { reportProgress: true, responseType: 'blob' }); this.http.request(req).subscribe((event: HttpEvent<any>) => { switch (event.type) { case HttpEventType.Sent: console.log('Sent'); break; case HttpEventType.DownloadProgress: console.log(`Downloading: ${event.loaded / 1024}Kb`); break; case HttpEventType.Response: console.log('Finished', event.body); break; } }); } }
Запросы такого рода реализуются через метод request() сервиса HttpClient. Метод принимает объект класса HttpRequest.