Požadavky: Projekty Angular při kliknutí na tlačítko na stránce odešlou HTTP požadavek, protože některá rozhraní jsou časově náročná, musí zobrazit efekt načítací animace, a po dokončení HTTP požadavku se animace načítání ukončí.Když je požadavek úspěšný nebo se objeví chyba, musíte vypnout animaci načítání。
Konvenční psaní
Následovně:
To znamená, že když požadavek uspěje a dojde k chybě, musíte zavolat animaci zavřeného načítání, existuje nějaký jednodušší způsob? Podobně jako try-catch-finally v C#.
Použijte operátor finalize
Co dělá, je finále pokus o pokusnakonecStačí napsat kód jednou a logika se spustí bez ohledu na úspěch nebo neúspěch.
Kód je následující:
Jak probíhá finalizace? V podstatě přidává callback add(fn) k disassemblaci pozorovatelného objektu pomocí subsubscribe. To zaručuje, že bude hlášen při chybě, dokončení a odhlášení.
Všimněte si, že operátor finalize se vykoná okamžitě po ukončení našeho Observable. To je důležité! U Angular HTTP to funguje velmi dobře, protože služba Angular HTTP po dokončení požadavku vrací "hotovo".
(Konec) |