2017-06-23 11 views
0

ドキュメントはちょうどrxjava 2.0 Observable.subscribeとObservable.subscribeActualの違いは何ですか?

保護された抽象無効subscribeActual(Observer<? super T> observer) オペレータの実装(ソースと中間の両方が)言う必要なビジネスロジックを実行し、このメソッドを実装する必要があります。 現在のObservableインスタンスまたはSubscriberのプラグインフックを呼び出す必要はありません。

答えて

1

Observable.subscribeObservableSourceのベースインタフェース定義から来ているとObservableのための主要なサブスクリプション方式である:内部および外部コンポーネントは、標準的な方法でフローを実行するためにそれを使用します。

しかし、演算子のビジネスロジックが、プラグインフックを適用してサブスクライブ実装をクラッシュさせないように、入ってくるObserverへのアクセスを得る前に、すべての種類の実行が必要な場合があります。したがって、すべてのオペレータにこの準備ロジックを複製させる代わりに、それらは単一の場所にあり、Observableのカスタマイズに対処する新しい抽象メソッドが存在します。

+0

この回答は正しいと思いますが、あまり役に立ちません。おそらく、subscribeとsubscribeActualを区別する具体的な例を挙げることはできますか? –

+0

これはあなたが理解していないものですか? subscribe()は、いくつかの準備の後、保護されたsubscribeActual()を呼び出します。たとえば、https://github.com/ReactiveX/RxJava/blob/2.x/src/main/java/io/reactivex/Maybe.java#L3722 – akarnokd

+0

ありがとうございます、私はMaybeの例を見ました。これは新しい質問を促しました。なぜMaybeが抽象宣言をしたのですか?ドキュメントでは抽象的ではありません。また、subscribeActual()もabstractです。 –

関連する問題