RxJAVA-Single
Single用于只发射一个数据,并且只有一个订阅者,订阅者一共三个方法。
interface SingleObserver {
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() {
@Override
public void subscribe(SingleEmitter emitter) {
//发送成功事件或者发送异常事件(并且事件只能发送一次)
emitter.onSuccess("success");
//emitter.onError(new RuntimeException("err"));
}
}).observeOn(Schedulers.newThread())
.subscribeOn(Schedulers.io())
.subscribe(new SingleObserver(){
@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);
}
}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
暂时没有评论,来抢沙发吧~