簡體   English   中英

RxJava - 當另一個完成時啟動一個Observable

[英]RxJava - Start one Observable when other one finish

我有兩個具有不同泛型類型的Observable:Observable o1和Observable o2

我被定義為o1 onComplet()和onNext()函數,我希望當這個Observable完成后,o2就可以啟動了。

我嘗試了Observable.concat(),但它們有不同的類型,所以這種方法不起作用......

那我該怎么做?

使用castAs之前concatWith (和ignoreElements可能是有用的太):

Observable<T> o1;
Observable<R> o2;

Observable<R> o3 = 
  o1.ignoreElements()
    .castAs(R.class)
    .concatWith(o2);

或者,如果您正在使用泛型類型(因此不能使用R.class ):

Observable<R> o3 = ((Observable<R>)(Observable<?>)
  o1.ignoreElements())
    .concatWith(o2);

Observable有一個名為doOnCompleted的方法,它接受一個Action0 (一個零參數函數)並返回一個新的Observable,它在正常完成時執行動作。 也許你可以用它來實現你想要的?

o1.doOnCompleted(() -> {
    // Start o2.
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM