subscribe() 的方法重载
1、subscribe()
Observable.create(new ObservableOnSubscribe<Integer>() { //创建事件发射器
@Override
public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
emitter.onNext(1);
emitter.onNext(2);
emitter.onNext(3);
emitter.onComplete();
emitter.onNext(4);
emitter.onNext(5);
Log.i("zqq","发送事件");
}
})
.subscribe();
结果:
表示,只管发送事件,无人处理
2、subscribe(Consumer<? super T> onNext)
Observable.create(new ObservableOnSubscribe<Integer>() { //创建事件发射器
@Override
public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
emitter.onNext(1);
emitter.onNext(2);
emitter.onNext(3);
emitter.onComplete();
emitter.onNext(4);
emitter.onNext(5);
Log.i("zqq","发送事件");
}
})
// .subscribe();
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
Log.i("zqq","accept>>"+integer);
}
});
结果:
表示,只处理了onnext()事件
3、subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError)
Observable.create(new ObservableOnSubscribe<Integer>() { //创建事件发射器
@Override
public void subscribe(ObservableEmitter<Integer> emitter) throws Exception {
emitter.onNext(1);
emitter.onNext(2);
emitter.onNext(3);
emitter.onError(new NullPointerException());
emitter.onNext(4);
emitter.onNext(5);
Log.i("zqq","发送事件");
}
})
.subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
Log.i("zqq","accept1>>"+integer);
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
Log.i("zqq","accept2>>"+throwable);
}
}
);
运行结果:
第一个Consumer 接收onNext()事件,第二个接收onError()事件
其他重载方法类似都对应了Observer的对应方法