RxJAVA-Single

Posted 征服.刘华强

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RxJAVA-Single相关的知识,希望对你有一定的参考价值。

Single用于只发射一个数据,并且只有一个订阅者,订阅者一共三个方法。

interface SingleObserver<T> 
    void onSubscribe(Disposable d);
    void onSuccess(T value);
    void onError(Throwable error);

Single只发射一个元素,所以没有complete 方法,不像Observable或者Flowable,数据发射完成之后,需要调用complete告诉下游已经完成。

package com.netty.demo.vertx;

import io.reactivex.*;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
import lombok.extern.slf4j.Slf4j;

@Slf4j
public class RxJavaTest 

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

        Single.create(new SingleOnSubscribe<String>() 
            @Override
            public void subscribe(SingleEmitter<String> emitter) 
                //发送成功事件或者发送异常事件(并且事件只能发送一次)
                emitter.onSuccess("success");
                //emitter.onError(new RuntimeException("err"));
            
        ).observeOn(Schedulers.newThread())
                .subscribeOn(Schedulers.io())
                .subscribe(new SingleObserver<String>()
                    @Override
                    public void onSubscribe(Disposable d) 
                        log.info("onSubscribe");
                    
                    @Override
                    public void onSuccess(String o) 
                        log.info("onSuccess:" + o);
                    
                    @Override
                    public void onError(Throwable e) 
                        log.error("onError:" + e);
                    
                );

        Thread.sleep(300000000);
    

 

以上是关于RxJAVA-Single的主要内容,如果未能解决你的问题,请参考以下文章

没有权限运行下游管道的用户如何从上游管道触发运行 GitLab 下游管道

“下游”和“上游”的定义

触发器分支属性的可变扩展防止创建下游管道

Jenkins 测试结果趋势图/图表用于聚合的下游测试结果?

Jenkins MultiJob 插件不聚合下游测试结果

Jenkins触发上下游构建