Wymagania: Projekty Angular, klikając przycisk na stronie, wysyłają żądanie HTTP, ponieważ niektóre interfejsy są czasochłonne, muszą wyświetlić efekt animacji ładowania, a po zakończeniu żądania HTTP animacja ładowania zostaje zamknięta.Gdy żądanie jest pomyślne lub wystąpi błąd, musisz wyłączyć animację ładowania。
Pisanie konwencjonalne
Następujący sposób:
To znaczy, gdy żądanie się powiedzie i pojawi się błąd, trzeba wywołać animację zamykania ładowania, czy jest łatwiejszy sposób? Podobnie jak try-catch-finally w C#.
Użyj operatora finalize
To, co robi, to próba i finałw końcuFunkcja, wystarczy napisać kod raz, a logika zostanie wykonana niezależnie od sukcesu czy porażki.
Kod jest następujący:
Jak działa finalizacja? W zasadzie dodaje callback add(fn) do deassemblymentu obserwowalnego obiektu poprzez subskrybowanie. Gwarantuje to, że zostanie zgłoszony w przypadku błędu, zakończenia lub wypisania.
Należy zauważyć, że operator finalize jest wykonywany zaraz po zakończeniu naszego Observable. To ważne! W przypadku HTTP Angular działa to bardzo dobrze, ponieważ usługa HTTP Angular zwraca "wykonane" po zakończeniu żądania.
(Koniec) |