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:
Observablezaman 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)
Singleve Completableyalnızca RxJava'da sunulan ve Observabledaha kısa API'ye sahip olan azaltılmış türleri temsil eden yeni türlerdir .
Singletemsil Observablebu yayarlar tek bir değer veya hata.
Completabletemsil eder Observable, bu yaydığı herhangi bir değer, ancak uç olaylar ya onErrorveyaonCompleted
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.
SingleGö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.
CompletableBiriniz olduğunda Observableve 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, Maybekombinasyonu Completableve tek.
Yukarıdaki gibi aynı dilde , bir türden Maybedö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.OptionalOptionalObjectMaybeSingleCompletable
MaybeObservableonNext
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. Flowablegeri 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?
Singlebir olmak Completabledöndü değerle?
Burada RXJava bölümünde bulduğum kısa bir cevap .