RxJava2操作符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);

        }
    }).flatMap(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操作符FlatMap)