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 перехватывает и сокращает запросы на загрузку, возвращая наблюдаемую таблицу симулированных событий.