1. 程式人生 > >RxJava2 Flowable concatWith(連線操作符)

RxJava2 Flowable concatWith(連線操作符)

concatWith(連線操作符)

1 concatWith介面

Flowable<T> concatWith(CompletableSource other)

Returns a Flowable that emits items from this Flowable and when it completes normally, the other CompletableSource is subscribed to and the returned Flowable emits its terminal events.

返回從此Flowable發出專案的Flowable,當它正常完成時,將訂閱另一個CompletableSource,並返回Flowable發出其終端事件。

Flowable<T> concatWith(MaybeSource<? extends T> other)

Returns a Flowable that emits the items from this Flowable followed by the success item or terminal events of the other MaybeSource.

Flowable<T> concatWith(Publisher<? extends T> other)

Returns a Flowable that emits the items emitted from the current Publisher, then the next, one after the other, without interleaving them.

返回一個Flowable,它發出從當前釋出者發出的項,然後是下一個,一個接一個地發出,發射過程中不會交錯傳送。

Flowable<T> concatWith(SingleSource<? extends T> other)

Returns a Flowable that emits the items from this Flowable followed by the success item or error event of the other SingleSource.

返回一個Flowable,它會發出自己的項,後跟另一個SingleSource的成功項或錯誤事件。

2 concatWith圖解說明

這裡使用了與靜態操作符concat一樣的圖解,簡單理解就是續接下一個Flowable

3 concatWith測試用例

測試程式碼
  @Test
    public void concatWith() {
        System.out.println("######concatWith#####");
        Flowable.just(3, 2, 4).concatWith(Flowable.just(100, 200))
                .subscribe(new Consumer<Integer>() {
                    @Override
                    public void accept(Integer integer) throws Exception {
                        System.out.println("concatWith, value:" + integer);
                    }
                });
    }


測試結果
######concatWith#####
concatWith, value:3
concatWith, value:2
concatWith, value:4
concatWith, value:100
concatWith, value:200

4 concatWith測試用例說明

測試結果已經一目瞭然了,在打印出第concatWith前面的Flowable的所有專案後,緊接著開始列印續接的Flowable中的專案,在做測試的過程中發現前後的專案的型別姚波吃一一致,否者無法編譯通過,前面是Integer後面也應該是,不能使String等其他型別。