RxJava2操作符ConcatMap

和FlatMap用法一样,将发送者发送的多个数据合并,然后发送给接收者,但接收者接收的数据是有序的

 Observable sender = Observable.create(new ObservableOnSubscribe() {
        @Override
        public void subscribe(@NonNull ObservableEmitter e) throws Exception {

            // 发送多个数据

            e.onNext(1);
            e.onNext(2);
            e.onNext(3);

        }
    }).concatMap(new Function>() {
        @Override
        public ObservableSource apply(@NonNull Integer integer) throws Exception {

            // 将多个数据合并

            List list = new ArrayList();

            list.add(integer);

            return Observable.fromIterable(list);    //使用fromIterable(),遍历集合
        }
    });


    // 用Consumer接收数据
    Consumer receiver = new Consumer() {
        @Override
        public void accept(@NonNull Integer o) throws Exception {

            // 接收的数据是有序的                
            Log.i("zzz","o:  " + o);

            // 1
            // 2
            // 3

        }
    };

    sender.subscribe(receiver);

你可能感兴趣的:(RxJava2操作符ConcatMap)