Krav: Angular-projekter sender en HTTP-anmodning, når man klikker på en knap på en side, fordi nogle grænseflader er tidskrævende og skal vise indlæsningsanimationen, og når HTTP-forespørgslen er afsluttet, lukkes indlæsningsanimationen.Når anmodningen er succesfuld, eller der opstår en fejl, skal du slå indlæsningsanimationen fra。
Konventionel skrivning
Som følger:
Det vil sige, når anmodningen lykkes, og der opstår en fejl, skal du kalde lukkeindlæsningsanimationen, er der en nemmere måde? Ligesom try-catch-finally i C#.
Brug finalize-operatoren
Det den gør, er at prøve og fange finalenendeligfunktion, behøver vi kun at skrive koden én gang, og logikken vil blive udført uanset succes eller fiasko.
Koden er som følger:
Hvordan fungerer finaliseren? Den tilføjer grundlæggende en callback-tilføjelse (fn) til adskillelsen af et observerbart objekt ved at abonnere. Dette garanterer, at den vil blive kaldt ved fejl, fuldførelse og afmelding.
Bemærk, at finalize-operatoren udføres, så snart vores Observable er afsluttet. Det er vigtigt! For Angular HTTP fungerer dette rigtig godt, fordi Angular HTTP-tjenesten returnerer "færdig", når forespørgslen er fuldført.
(Slut) |