Persyaratan: Proyek sudut, saat mengklik tombol pada halaman, akan mengirim permintaan HTTP, karena beberapa antarmuka memakan waktu, perlu menampilkan efek animasi pemuatan, ketika permintaan HTTP selesai, animasi pemuatan akan ditutup.Ketika permintaan berhasil atau terjadi kesalahan, Anda perlu mematikan animasi pemuatan。
Penulisan konvensional
Sebagai berikut:
Artinya, ketika permintaan berhasil dan terjadi kesalahan, Anda perlu memanggil animasi pemuatan tutup, apakah ada cara yang lebih mudah? Mirip dengan try-catch-finally di C#.
Menggunakan operator finale
Apa yang dilakukannya adalah try-catch-finalakhirnya, kita hanya perlu menulis kode sekali, dan logika akan dijalankan terlepas dari keberhasilan atau kegagalan.
Kodenya adalah sebagai berikut:
Bagaimana cara kerja finale? Ini pada dasarnya menambahkan callback add(fn) ke pembongkaran objek yang dapat diamati dengan berlangganan. Ini menjamin bahwa itu akan dipanggil pada kesalahan, penyelesaian, dan berhenti berlangganan.
Perhatikan bahwa operator finale dieksekusi segera setelah Observable kami dihentikan. Ini penting! Untuk Angular HTTP, ini bekerja dengan sangat baik karena layanan HTTP Angular mengembalikan "selesai" setelah permintaan selesai.
(Akhir) |