απαιτήσεις: Τα γωνιακά έργα, όταν κάνετε κλικ σε ένα κουμπί σε μια σελίδα, θα στείλουν ένα αίτημα HTTP, επειδή ορισμένες διεπαφές είναι χρονοβόρες, πρέπει να εμφανίζουν το εφέ κινούμενης εικόνας φόρτωσης, όταν ολοκληρωθεί το αίτημα HTTP, η κινούμενη εικόνα φόρτωσης θα κλείσει.Όταν το αίτημα είναι επιτυχές ή παρουσιαστεί σφάλμα, πρέπει να απενεργοποιήσετε την κινούμενη εικόνα φόρτωσης。
Συμβατική γραφή
Ως εξής:
Δηλαδή, όταν το αίτημα πετύχει και παρουσιαστεί σφάλμα, πρέπει να καλέσετε την κινούμενη εικόνα κλεισίματος φόρτωσης, υπάρχει ευκολότερος τρόπος; Παρόμοιο με το try-catch-τελικά σε C#.
Χρήση του τελεστή οριστικοποίησης
Αυτό που κάνει είναι να προσπαθεί-πιάνει-τελικότελικάλειτουργία, χρειάζεται να γράψουμε τον κώδικα μόνο μία φορά και η λογική θα εκτελεστεί ανεξάρτητα από την επιτυχία ή την αποτυχία.
Ο κωδικός έχει ως εξής:
Πώς λειτουργεί το finalize; Βασικά προσθέτει ένα callback add(fn) στην αποσυναρμολόγηση ενός παρατηρήσιμου αντικειμένου με την εγγραφή του. Αυτό εγγυάται ότι θα κληθεί σε περίπτωση σφάλματος, ολοκλήρωσης και διαγραφής.
Σημειώστε ότι ο τελεστής οριστικοποίησης εκτελείται μόλις τερματιστεί το Παρατηρήσιμό μας. Αυτό είναι σημαντικό! Για το Angular HTTP, αυτό λειτουργεί πολύ καλά επειδή η υπηρεσία Angular HTTP επιστρέφει "ολοκληρώθηκε" μόλις ολοκληρωθεί το αίτημα.
(Τέλος) |