Single
Single和Observable类似,但是它主要处理单个数值,它只会返回onSuccess和onError,没有onComplete
代码语言:javascript复制 Single.just("Hello World")
.delay(10, TimeUnit.SECONDS, new IoScheduler())
.subscribeWith(new DisposableSingleObserver<String>() {
@Override
public void onSuccess(String s) {
}
@Override
public void onError(Throwable e) {
}
});
// .subscribe(new SingleObserver<String>() {});---此方法没有返回值,所以不用
Single默认只是调用onSuccess。可以在Single.create中手动调用onError
Maybe
Maybe,也就是“或许”的意思。它是一种延迟计算,要么发射单个数据,要么不发送数据,要么发送exception onSuccess,onError和onComplete三个方法,Observable只有onError和onComplete不能同时存在,但是Maybe完全互斥(DelayMaybeObserver的run方法有) 和Single一样不能用subscribe方法,因为没有返回值
代码语言:javascript复制 Maybe.just("Hello World")
.delay(10, TimeUnit.SECONDS, new IoScheduler())
.subscribeWith(new DisposableMaybeObserver<String>() {
@Override
public void onSuccess(String s) {
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
Completable
CompletableDelay内部类Delay的run方法可以知道,要么onError,要么onComplete 和Single一样不能用subscribe方法,因为没有返回值
代码语言:javascript复制 Completable.complete()
.delay(10, TimeUnit.SECONDS, new IoScheduler())
.subscribeWith(new DisposableCompletableObserver() {
@Override
public void onComplete() {
}
@Override
public void onError(Throwable e) {
}
});