=====События HTTP===== Для получения исчерпывающих данных о процессе выполнения запроса, при его инициировании необходимо задать для параметра ''reportProgress'' значение true.\\ \\ Установление ''reportProgress'' в true инициирует возникновение событий ''HttpEvent'' в процессе выполнения запроса. Тип события хранится в свойстве type, значением которого является одно из значений перечисления ''HttpTypeEvent''. * **Sent** - запрос отправлен; * **ResponseHeader** - получены код и заголовки ответа; * **UploadProgress** - событие загрузки данных (для ''POST'' и ''PUT''); * **DownloadProgress** - событие скачивания данных (для ''GET''); * **User** - событие от Http Interceptor или сервера; * **Response** - выполнение запроса завершено. 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) => { 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''.