HTTP — отслеживание и отображение хода выполнения запроса¶
27.02.2023
Иногда приложения передают большие объемы данных, и эти передачи могут занимать много времени. Типичным примером является загрузка файлов. Вы можете улучшить работу пользователей, обеспечив обратную связь о ходе выполнения таких передач.
Сделать запрос¶
Чтобы сделать запрос с включенными событиями прогресса, создайте экземпляр HttpRequest
с опцией reportProgress
, установленной в true, чтобы включить отслеживание событий прогресса.
1 2 3 |
|
Каждое событие прогресса запускает обнаружение изменений, поэтому включайте их, только если вам нужно сообщить о прогрессе в пользовательском интерфейсе.
При использовании HttpClient.request()
с HTTP-методом, настройте метод с observe: 'events'
, чтобы видеть все события, включая прогресс передачи.
Отслеживание выполнения запроса¶
Далее, передайте этот объект запроса методу HttpClient.request()
, который возвращает Observable
из HttpEvents
(те же события, обрабатываемые перехватчиками).
1 2 3 4 5 6 7 8 |
|
Метод getEventMessage
интерпретирует каждый тип HttpEvent
в потоке событий.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
В примере приложения для этого руководства нет сервера, принимающего загруженные файлы. Перехватчик UploadInterceptor
в app/http-interceptors/upload-interceptor.ts
перехватывает и сокращает запросы на загрузку, возвращая наблюдаемую таблицу симулированных событий.