Rxjava2入門チュートリアル6:シングル、Completable、観察可能なのMaybe--簡易版

Rxjava2では、Observale流動性は、データ・ストリームを送信するために使用されている、しかし、我々は実用的なアプリケーションでは、多くの時間は、しかし、唯一の単一のデータ、または完全な通知、データ・ストリームの形式でデータを送信する必要はありませんまたはエラー通知。この場合、我々は少しやり過ぎなので、順番にたぶん、観察可能--single、Completableの簡易版を生じさせる、このデータの1つのシーンや通知を満たすために観察可能または流動性を使用します。

シングル

単一の送信データ、又は異常通知は、通知を使用してデータを送信することができる完了通知を送信することができません。

Completable

データを送信していない唯一の完了通知、または異常通知、異常通知完了通知のみを放出する、請求を送信します

多分

それ以外のデータが無効である送信、単一のデータを送信し、完了通知又は完了した異常通知を送信し、アドバイスを投げた後に一つだけ例外通知事前通知を発するか、データのみ起動時に行うことができる送信することができます。

例:単一の送信単一のデータ

 

例2:単一の送信異常通知

SingleEmitter:シングルトランスミッタ

ランチャーインタフェースSingleEmitterシングル観察可能なオブジェクト、

1、方法void onSuccess(T t)用来发射一条单一的数据,且一次订阅只能调用一次,不同于Observale的发射器ObservableEmitter中的void onNext(@NonNull T value)方法,在一次订阅中,可以多次调用多次发射。
2、方法void onError(Throwable t)等同于ObservableEmitter中的void onError(@NonNull Throwable error)用来发射一条错误通知
3、SingleEmitter中没有用来发射完成通知的void onComplete()方法。
方法onSuccess与onError只可调用一个,若先调用onError则会导致onSuccess无效,若先调用onSuccess,则会抛出io.reactivex.exceptions.UndeliverableException异常。

SingleObserver:Single观察者

可观察对象Single对应的观察者为SingleObserver

方法void onSubscribe(Disposable d)等同于Observer中的void onSubscribe(Disposable d)。
方法void onSuccess(T t)类似于Observer中的onNext(T t)用来接收Single发的数据。
方法void onError(Throwable e)等同于Observer中的void onError(Throwable e)用来处理异常通知。
没有用来处理完成通知的方法void onComplete()

示例三:Completable发射完成通知

 

示例四:Completable发射异常通知

CompletableEmitter:Completable的发射器

可观察对象Completable的发射器接口CompletableEmitter中
1、方法onComplete()等同于Observale的发射器ObservableEmitter中的onComplete(),用来发射完成通知。
2、方法onError(Throwable e)等同于ObservableEmitter中的onError(Throwable e),用来发射异常通知。
方法onComplete与onError只可调用一个,若先调用onError则会导致onComplete无效,若先调用onComplete,则会抛出io.reactivex.exceptions.UndeliverableException异常。

CompletableObserver:Completable的观察者

可观察对象Completable对应的观察者为CompletableObserver

其中的三个方法均等同于Observer中的对应的方法,CompletableObserver中没有用来发射数据的方法。

示例五:Maybe发射单一数据和完成通知

 

示例六:Maybe发射单一数据和异常通知

MaybeEmitter:Maybe的发射器

可观察对象Maybe的发射器接口MaybeEmitter中
1、方法void onSuccess(T t)用来发射一条单一的数据,且一次订阅只能调用一次,不同于Observale的发射器ObservableEmitter中的void onNext(@NonNull T value)方法,在一次订阅中,可以多次调用多次发射。
2、方法void onError(Throwable t)等同于ObservableEmitter中的void onError(@NonNull Throwable error);用来发射一条错误通知
3、方法onComplete()等同于Observale的发射器ObservableEmitter中的onComplete(),用来发射完成通知。
方法onComplete与onError只可调用一个,若先调用onError则会导致onComplete无效,若先调用onComplete,则会抛出io.reactivex.exceptions.UndeliverableException异常。
方法onSuccess必须在方法onComplete或onError之前调用,否则会导致方法onSuccess调用无效。

MaybeObserver:Maybe的观察者

可观察对象Maybe对应的观察者为MaybeObserver

 

方法void onSubscribe(Disposable d)等同于Observer中的void onSubscribe(Disposable d)。
方法void onSuccess(T t)类似于Observer中的onNext(T t)用来接收Single发的数据。
方法void onError(Throwable e)等同于Observer中的void onError(Throwable e)用来处理异常通知。
方法void onComplete()等同于Observer中的void onComplete()用来接收完成通知。

 

おすすめ

転載: blog.csdn.net/suyimin2010/article/details/88091233