当前位置: 首页 > 工具软件 > RxJava > 使用案例 >

RXJAVA-doOnNext

郑佐
2023-12-01

它的作用是让订阅者在接收到数据之前干点有意思的事情。假如我们在获取到数据之前想先保存一下它,无疑我们可以这样实现。

package com.netty.demo.vertx;

import io.reactivex.*;
import io.reactivex.functions.Consumer;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class RxJavaTest {

    public static void main(String[] args) throws InterruptedException {

        Observable.create(new ObservableOnSubscribe<Integer>() {
            @Override
            public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
                emitter.onNext(1);
                emitter.onNext(2);
                emitter.onNext(3);
            }
        }).doOnNext(new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) throws Exception {
                log.info("doOnNext:" + integer);
            }
        }).subscribe(new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) throws Exception {
                log.info(integer.toString());
            }
        });

        Thread.sleep(300000000);
    }
}

 

2021-02-23 17:16:13 [main] INFO  c.n.d.v.RxJavaTest:accept - doOnNext:1
2021-02-23 17:16:13 [main] INFO  c.n.d.v.RxJavaTest:accept - 1
2021-02-23 17:16:13 [main] INFO  c.n.d.v.RxJavaTest:accept - doOnNext:2
2021-02-23 17:16:13 [main] INFO  c.n.d.v.RxJavaTest:accept - 2
2021-02-23 17:16:13 [main] INFO  c.n.d.v.RxJavaTest:accept - doOnNext:3
2021-02-23 17:16:13 [main] INFO  c.n.d.v.RxJavaTest:accept - 3

 类似资料: