Petunjuk RxJS [filter, takeWhile]

Petunjuk ini mencakup perbedaan antara filter dan operator takeWhile dari pustaka RxJS .
Menurut dokumentasi resmi:
Saring
Filter item yang dipancarkan oleh sumber Observable dengan hanya memancarkan item yang memenuhi predikat tertentu.
takeWhile
Memancarkan nilai yang dipancarkan oleh sumber Dapat diamati selama setiap nilai memenuhi predikat yang diberikan, dan kemudian selesai segera setelah predikat ini tidak terpenuhi.
Oleh karena itu, kedua operator mengambil fungsi predikat sebagai argumen pertama yang dipanggil untuk setiap nilai yang dipancarkan oleh aliran sumber.
Namun, Observable yang dikembalikan oleh operator filter tidak akan pernah berhenti berlangganan dari aliran sumber. Perlu dicatat bahwa operator filter tidak dapat digunakan untuk berhenti berlangganan secara implisit dari sumber Observable setelah fungsi predikat tidak terpenuhi:

Di sisi lain, aliran yang dikembalikan oleh operator takeWhile akan berhenti berlangganan dari sumber Observable dan mengeluarkan pemberitahuan lengkap setelah fungsi predikat mengembalikan nilai palsu. Akibatnya, operator takeWhile dapat digunakan untuk secara implisit membatalkan langganan aliran sumber berdasarkan kondisi tertentu:

Perlu dicatat bahwa sumber yang Dapat Diamati tidak memancarkan pemberitahuan lengkap, namun fungsi callback yang diteruskan ke operator finalisasi dipanggil setelah penghentian streaming baik itu penyelesaian atau pembatalan langganan. Selain itu, Anda dapat mengontrol apakah nilai terakhir yang dipancarkan oleh aliran sumber akan diteruskan ke keluaran Observable (argumen kedua dari operator takeWhile yang salah secara default).
Contoh langsung:
Jika Anda menyukai petunjuknya, tolong beri saya tepuk tangan