2016-04-03 18 views
0

Projemde RxJava kullanıyorum ve 2 yöntemin birbiri ardına çağrıldığı ve her iki dönüş boşluğunun olduğu bir durum var. Bu yöntemlerin her biri dahili olarak RxJava'yı kullanır.RxJava: Ardışık olarak birden fazla ilgisiz yöntem çağrılıyor

Sözde:

void sendMsg_1() { 
... 
//Fetch data from DB using RxJava to send message to client. 
.. 
} 

void sendMsg_2() { 
... 
Uses RxJava to send message to client. 
.. 
} 

çağırma kodu:

sendMsg_1(); 
sendMsg_2(); 

Pratikte sendMsg_2 hızlıdır ve sendMsg_1 onun msj göndermeden önce müşteri anlıyor. Bu benim için iyi değil ve Msg1'in çıktısının Msg2'den önce gönderilmesini istiyorum.

Nasıl yapmalı?

sendMsg_1() 
.flatMap(msgObj-> { 
    return sendMsg_2(); 
}).subscribe(); 

daha iyi bir yolu var mı:

Ben yapay gözlemlenebilir kukla sadece bu yüzden aşağıdaki gibi .flatMap kullanabilirsiniz dönmesi gerekir?

Teşekkür ederiz!

cevap

0

Bu rxJava yoludur hükümsüz yöntemlerini yayarlar doğru yolu şudur: herkes yardım ederse bununla :-)

+0

tek problem zevk ...

public rx.Completable func_A() { return Completable.create(subscriber -> { // func_A logic if(ok) subscriber.onCompleted(); else subscriber.onError(throwable); }); } func_A() .doOnCompleted(() -> func_B()) .subscribe(); 

bir olsun kalmamasıdır func_B tamamlandığını bildiriyor. – njzk2

+0

ne demek istiyorsun? Ne tür bir bildirim? – Shvalb

+0

Haklıymışsın! - beklendiği gibi çalışmıyor! – Shvalb

İlgili konular