Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 4135|Ответ: 1

[Угловат] Оператор RxJS finalize выполняет логику после завершения наблюдаемой функции

[Скопировать ссылку]
Опубликовано 26.06.2022 18:49:57 | | |
Требования: Angular Projects, при нажатии кнопки на странице, отправляют HTTP-запрос, поскольку некоторые интерфейсы занимают много времени, нужно отображать эффект анимации загрузки, после завершения HTTP-запроса анимация загрузки закрывается.Когда запрос выполнен успешно или возникает ошибка, нужно отключить анимацию загрузки

Традиционное письмо

Следующим образом:

То есть, когда запрос выполнен успешно и возникает ошибка, нужно вызвать анимацию закрытия загрузки, есть ли более простой способ? Похоже на «попробуй поймать» в C#.

Используйте оператор финализации

Что он делает — это попытка поймать финалнаконецНам нужно написать код только один раз, и логика будет выполнена независимо от успеха или неудачи.

Код таков:



Как работает финализация? По сути, он добавляет callback add(fn) к разборке наблюдаемого объекта путём подписки. Это гарантирует, что он будет вызван при ошибке, завершении и отмене подписки.

Обратите внимание, что оператор finalize выполняется сразу после завершения нашего Observable. Это важно! Для Angular HTTP это работает очень хорошо, потому что сервис Angular HTTP возвращает «выполнено» после завершения запроса.

(Конец)




Предыдущий:Задержка времени отклика интерфейса Fiddler и слабое сетевое тестирование
Следующий:Извлечение всего текста из PDF-файла с помощью C# (поддерживает .NET Core)
 Хозяин| Опубликовано 18.09.2022 16:05:18 |
Подписка на тематические темы для Angular RxJS
https://www.itsvse.com/thread-9209-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com