Cerințe: Proiectele Angular, atunci când apeși pe un buton de pe o pagină, vor trimite o cerere HTTP, deoarece unele interfețe consumă mult timp și trebuie să afișeze efectul animației de încărcare, iar când cererea HTTP este finalizată, animația de încărcare va fi închisă.Când cererea are succes sau apare o eroare, trebuie să dezactivezi animația de încărcare。
Scriere convențională
Așa cum urmează:
Adică, când cererea are succes și apare o eroare, trebuie să apelezi animația de închidere a încărcării, există o metodă mai ușoară? Similar cu try-catch-finally în C#.
Folosește operatorul de finalizare
Ce face este încercare-prindere-finalăîn sfârșitFuncționa, trebuie să scriem codul o singură dată, iar logica va fi executată indiferent dacă reușește sau eșuează.
Codul este următorul:
Cum funcționează finalizarea? Practic, adaugă un callback add (fn) la dezasamblarea unui obiect observabil prin abonament. Aceasta garantează că va fi apelată în caz de eroare, completare și dezabonare.
Rețineți că operatorul de finalizare este executat imediat ce Observabilul nostru este terminat. Este important! Pentru Angular HTTP, acest lucru funcționează foarte bine deoarece serviciul Angular HTTP returnează "gata" odată ce cererea este completă.
(Sfârșit) |