RxJS Nedir?
RxJS, olay ve veri kaynaklarını abone olunabilir (subscribable) nesnelere dönüştürüp, bunlar üzerinde operatörler yardımıyla dönüşümler gerçekleştirebildiğiniz, gözlemleyenler (observer) aracılığıyla sonucu tüketebildiğiniz JavaScript’le yazılmış bir reaktif programlama (reactive programming) kütüphanesidir.
RxJS’i anlamayı kolaylaştıracak kadarıyla şu sıkıcı sınıf ve nesnelerini bir inceleyelim. ?
Observable
RxJS’in temel sınıfı. Gözlemlenen.
Somutlaştırıldığında (instantiate) gözlemlenebilir bir nesne döner.
Herhangi bir veri veya olay Observable’a dönüştürülebilir.
RxJS’te bu amaçla geliştirilmiş birçok fabrika fonksiyon (factory function) vardır.
Bir Observable’ın neyi ne zaman yayınlayacağını belirlemekte operatörler kullanılır.
Yine operatörler aracılığıyla bir Observable’dan başka bir Observable türetilebilir.
Akışı tüketmek amacıyla her Observable’da bir subscribe metodu bulunur.
Observer
Observable’a abone olurken (subscribe) bağladığınız artçı çağrı (callback) seti. Gözlemleyen.
Observable’ın yayınladığı değer ve uyarıları tüketmeye yarar.
Üç çağrı tipi vardır:
Veriyi kullanmak için next
Hata işlemek için error
Observable’ın işinin bittiği durum için complete
Subscription
Bir Observable’a abone olduğunuzda dönen nesne. Abonelik.
Her Subscriptio’da onu sonlandıran bir unsubscribe metodu bulunur.
Bir Subscription sonlandı diye Observable yok olmaz; sadece kaynak tüketmeyi bırakır.
İşi biten (complete) Observable’a olan tüm Subscription’lar kendiliğinden sonlanır.
Subject
Hem Observable gibi abone olunabilen, hem de Observer’daki tüm metotları (next, error, complete) barındıran bir sınıf.
İstediğiniz anda bir değer yayınlamanıza olanak verir.
Asıl amacı bir Observable’ın birden fazla tüketiciye aynı yayını yapabilmesini sağlamaktır.
Hatalı kullanıma elverişlidir. Sık ve yersiz kullananlar mahallede sevilmez.
Bu eğitimde Rxjs Kütüphanesindeki Observables Operators ve Subjects konularını ayrıntılı olarak şleyeceğiz.Dersleri bolca örnek yaparak işlemeye gayret ettim.Böylece anlatılanlar teorikte kalmayacak pratik yaparak pekiştirmeniz daha kolay hale gelecektir.