2015-06-10 10 views
9

Java 8 lambda akışları, her bir öğe üzerinde bir geçersiz işlem gerçekleştirmenizi sağlayan bir peek() operatörüne sahiptir. Bu, genellikle hata ayıklama için kullanılır, ancak aynı zamanda bir şeyle eşleştirmeden bir hükümsüz operasyonu aldatmak ve başlatmak için iyi bir yoldur.RxJava- Gözlemlenebilir bir zincir içinde bir peek() veya geçersiz işlem gerçekleştiriliyor mu?

RxJava'da buna eşdeğer var mı? Belki de iyi bir pratiği takip etmiyorum ya da tepkisel olarak yeterince düşünmüyorum ... ama operasyon öncesi ve sonrası durum etiketlerini oluşturmak gerçekten kullanışlı olurdu? peek() desteklenmiyorsa, izlenecek daha iyi bir model var mı?

Observable<Item> Item= ...; 

Label statusLabel = new Label(); 
Label resultLabel = new Label(); 

Observable<CalculatedItem> calculatedItem = calculated.subscribeOn(Schedulers.computation()) 
.peek(c -> statusLabel.setText("Working..")) 
.map(c -> performExpensiveCalculation(c)) 
.peek(r -> statusLabel.setText("")); 

calculatedItem.subscribe(c -> resultLabel.setText(c)); 

cevap

9

akışında her öğe için çağrılacak bir yöntem doOnNext(Action1<Item> action) yoktur.

Documentation

+0

Bir çekicilik gibi çalıştım. Teşekkürler! – tmn

İlgili konular