Anforderungen: Angular-Projekte senden beim Klicken auf einen Button auf einer Seite eine HTTP-Anfrage, da einige Schnittstellen zeitaufwendig sind und den Ladeanimationseffekt anzeigen müssen; wenn die HTTP-Anfrage abgeschlossen ist, wird die Ladeanimation geschlossen.Wenn die Anfrage erfolgreich ist oder ein Fehler auftritt, musst du die Ladeanimation ausschalten。
Konventionelles Schreiben
Folgendermaßen:
Das heißt, wenn die Anfrage erfolgreich ist und ein Fehler auftritt, muss man die Close-Loading-Animation aufrufen – gibt es einen einfacheren Weg? Ähnlich wie try-catch-finally in C#.
Verwenden Sie den Finalize-Operator
Was es macht, ist Versuch-Fang-FinaleendlichFunktion, müssen wir den Code nur einmal schreiben, und die Logik wird unabhängig von Erfolg oder Misserfolg ausgeführt.
Der Code lautet wie folgt:
Wie funktioniert die Finalisierung? Im Grunde fügt es durch Abonnement eine Callback-Add(fn) zur Demontage eines observierbaren Objekts hinzu. Dies garantiert, dass es bei Fehler, Abschluss und Abmeldung aufgerufen wird.
Beachten Sie, dass der Finalize-Operator ausgeführt wird, sobald unser Observable beendet ist. Das ist wichtig! Für Angular HTTP funktioniert das sehr gut, weil der Angular-HTTP-Dienst nach Abschluss der Anfrage "erledigt" zurückgibt.
(Ende) |