2017-12-28 21 views

答えて

0

、デフォルトObservable.subscribe方法は、(onErroronCompletedをクラッシュなど)いくつかの誤用または他の非従来型の挙動から保護するために(SafeSubscriber呼ばれる)着信Subscriber上安全ラッパーを追加しました。

これは一般的unsafeSubscribeが最もオペレータによって導入され、採用されたこのようオペレータに不利ました。反応ストリーム仕様はonNextonErroronComplete方法をクラッシュ禁じとして

V2はObserver行動に関して非常に厳しくなりました。 Observerを実装するときに人々が明示的にこれらのメソッドでクラッシュしないようにするか、lambda-subscribe()メソッドを代わりに使用するだけで、デフォルトの安全ラッピングは削除されています。したがって、基本的な前提はObserverがうまく動作するようになったことです。したがって、unsafeSubscribeメソッドは不要になりました。 APIリフレッシュ機会(メジャーバージョンジャンプの間にバイナリ互換性は必須ではありません)であるため、さまざまな理由で古いメソッドを削除したり名前を変更することができました。

残念ながら、いくつかの実装はまだこの点で信頼性の低いだったと古いセーフティネットを期待しました。井戸プレーヤーを傷つけるのを避けるために、可能な限り正常にそのような誤動作を防御する方法が導入されました(safeSubscribe)。

+0

コメント ためのおかげで私はあなたのポイント、理解を得ました。なぜそれが削除されたのかが明らかになるように、wikiに記載する必要があります。私はRxJava1にある "Intro To Rx" Githubリソースに従っていましたが、serialize()演算子を使用するために、unsafeSubscribe()を使ってポイントを証明していました。これについてあなたは何を言いますか?シリアライズは、状況によってはまだ有効ですか? –

+1

私は多くの人々(オペレータの作家以外)が 'unsafeSubscribe'について知っているとは思わない。メソッドに関する[wiki](https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#instance-methods)の表を更新しました。シリアライズ - >それはもう役に立たないと思うし、おそらく3.xで削除されるだろう。 Observableプロトコルのシリアライゼーション要件に違反した初期のオペレータ作家には、ある程度の価値がありました。今日、ほとんどの人はカスタム演算子の作成が最後の手段であることを知っています。しかしそれは別の議論です。 – akarnokd

+0

RxJavaの今後の方向性に関するこの小さなアップデートについて知っておくとよいでしょう。あなたの時間をもう一度ありがとう。 –

関連する問題