誰かがRxJavaのObservable、Completable、Singleの違いを明確な例で説明できますか?
どのシナリオで他のものを使用しますか?
誰かがRxJavaのObservable、Completable、Singleの違いを明確な例で説明できますか?
どのシナリオで他のものを使用しますか?
回答:
Observable
時間の経過とともに値を出力するイベントソースの汎用ReactiveX構築ブロックです。(したがって、ReactiveXが拡張されたすべての言語に存在します)
簡単に観察できるイベントは次の
とおりです:onNext *(onCompleted | onError)?/(*ゼロ以上?-ゼロまたは1)
Single
およびCompletable
は、RxJavaで独占的に導入されたObservable
、より簡潔なAPIを備えたの型を表す新しい型です。
Single
Observable
単一の値またはエラーを出力することを表します。
Completable
表しObservable
、その発しない値が、唯一の端末イベントのいずれかonError
、またはonCompleted
返されるメソッドの違いのような違いを考えることができます:
オブジェクトのコレクション-観察可能
単一オブジェクト-単一
値を返さないメソッド(voidメソッド)-完了可能。
Single
タスク指向のObservableがあり、1回実行されるネットワークリクエストと戻り値(またはエラー)のように単一の値を期待する場合、ネットワークコールが1回だけ実行されるため、追加の値を返すことを期待しない場合に適しています。時間とともに。別の例は、DBフェッチデータ操作です。
Completable
がありObservable
、操作の結果の値が気にならない場合、または何もない場合に適しています。たとえば、キャッシュの更新などの例があります。操作は成功または失敗しますが、値はありません。
もう1つの例は、何も返さない、長時間実行される初期化操作です。成功の表示のみで発生したUPDATE / PUTネットワーク呼び出しである可能性があります。
いずれにせよ、CompletableとSingleは新しい機能を追加していませんが、APIが公開したObservableの背後にある操作の詳細を伝える、より堅牢で簡潔なAPIを導入しています。
編集:
Maybe
:RxJava2はと呼ばれる新しいタイプを追加したMaybe
、Maybe
との組み合わせであるCompletable
とのシングル。
上記のような同じ言語Maybe
ではOptional
、なんらかの型を返すメソッドと考えることができます
。これOptional
は、Object
(nullではなく)値があるかどうかを明示的に通知するObjectのラッパーです。
とMaybe
同じようにSingle
、値をまったく同じにすることも、何も返さないこともありCompletable
ます。さらに、両方のように、エラーがあります。
Maybe
がObservable
値を持たない可能性があり、完了するだけであることをマークしたい場合に価値があります。
例はキャッシュからフェッチされます。必ずしもキャッシュに値があるとは限らないため、この場合は完了onNext
し、キャッシュから値を取得します。
これは、RxJava2を使用してストリーム内のnull以外の値を処理する場合にも役立ちます。
Flowable
:まず、バックプレッシャーを定義しましょう。バックプレッシャーは、データが処理されるよりも速く生成される状況を処理する手段です。 Flowable
ダウンストリームがアイテムをリクエストできるようにするバックプレッシャーサポートがあります。違いについて詳しくは、こちらをご覧ください。
Maybe<T>
、本質的にはSingle<T?>
?
Single
があるCompletable
と見なすことができますか?
ここ RXJavaセクションで見つけた簡潔な答え。