RxJava'da Gözlemlenebilir, Tamamlanabilir ve Tekli arasındaki farkı açık örneklerle açıklayabilir misiniz?
Hangi senaryoda birini diğerlerine göre kullanıyoruz?
RxJava'da Gözlemlenebilir, Tamamlanabilir ve Tekli arasındaki farkı açık örneklerle açıklayabilir misiniz?
Hangi senaryoda birini diğerlerine göre kullanıyoruz?
Yanıtlar:
Observable
zaman içinde değerleri yayan olay kaynağının genel ReactiveX yapı taşıdır. (ve böylece ReactiveX genişletilmiş her dilde mevcuttur)
Kısaca Gözlemlenebilir olaylar şunlardır:
onNext * (onCompleted | onError)? / (* sıfır veya daha fazla? - sıfır veya 1)
Single
ve Completable
yalnızca RxJava'da sunulan ve Observable
daha kısa API'ye sahip olan azaltılmış türleri temsil eden yeni türlerdir .
Single
temsil Observable
bu yayarlar tek bir değer veya hata.
Completable
temsil eder Observable
, bu yaydığı herhangi bir değer, ancak uç olaylar ya onError
veyaonCompleted
Geri dönen bir yöntemin farklılıkları gibi farklılıkları düşünebilirsiniz:
Nesnelerin Toplanması - Gözlenebilir
Tek nesne - Tek
ve değer döndürmeyen yöntem (void yöntemi) - Tamamlanabilir.
Single
Görev odaklı Gözlemlenebilir'e sahip olduğunuzda ve bir kez gerçekleştirilen Ağ isteği ve dönüş değeri (veya hata) gibi tek bir değer beklediğinizde uygun olabilir, ağ çağrısı tek seferde çalıştırılır, yani ek değerler döndürmesini beklemiyorsunuz mesai. Diğer bir örnek, DB getirme veri işlemidir.
Completable
Biriniz olduğunda Observable
ve operasyondan kaynaklanan değeri önemsemediğinizde veya hiç yoksa uygundur. Örnekler bir önbelleğin güncellenmesidir, işlem ya başarılı / başarısız olabilir, ancak değer yoktur.
Başka bir örnek, hiçbir şey döndürmeyen bazı uzun süreli başlatma işlemidir. Yalnızca başarı göstergesiyle sonuçlanan UPDATE / PUT ağ çağrısı olabilir.
Her durumda, Completable ve Single yeni yetenekler eklemiyorlar, ancak API'nin açığa çıkardığı Observable'ın arkasındaki işlemler hakkında daha fazla bilgi veren daha sağlam ve kısa API'ler sunuyorlar.
Düzenle:
Maybe
:RxJava2 olarak adlandırılan yeni bir tür ilave Maybe
, Maybe
kombinasyonu Completable
ve tek.
Yukarıdaki gibi aynı dilde , bir türden Maybe
dönen bir yöntem olarak düşünülebilir,
Object çevresinde bir değer olup olmadığını açıkça söyleyen bir sarmalayıcıdır (boş yerine).
İle ya tam olarak benzer bir değere sahip olabiliriz ya da hiçbir şey döndürmeyebiliriz - tıpkı gibi . Ek olarak, her ikisi gibi bizde de hata var. bir değere sahip olmayabileceğini ve sadece tamamlayacağını işaretlemek istediğimizde değerlidir .
Önbellekten bir örnek alınacak, önbellekte mutlaka bir değerimiz olmayacak, bu yüzden bu durumda, önbellekteki değeri alacağımız için tamamlayacağız .
Bu aynı zamanda RxJava2 ile bir akıştaki boş olmayan değerleri işlemeye değer.Optional
Optional
Object
Maybe
Single
Completable
Maybe
Observable
onNext
Flowable
:İlk önce, geri basıncı tanımlayalım. Geri basınç, verilerin işlenebileceğinden daha hızlı üretildiği durumu ele almanın bir yoludur. Flowable
geri basınç desteğine sahiptir ve aşağı akımın ürün talep etmesine izin verir. Sen farklar hakkında daha fazla bilgi bulabilirsiniz burada .
Maybe<T>
, esasen öyle Single<T?>
mi?
Single
bir olmak Completable
döndü değerle?
Burada RXJava bölümünde bulduğum kısa bir cevap .