https://rxjava-doc.readthedocs.io/en/latest/What%27s-different-in-2.0/には言及されていませんし、コーディング中の提案の中でそれを見ることはできません。私は "safeSubscribe()"を見ることができます。RxJava2の "unsafeSubscribe()"演算子はどうなりましたか?
削除されましたか? V1で
https://rxjava-doc.readthedocs.io/en/latest/What%27s-different-in-2.0/には言及されていませんし、コーディング中の提案の中でそれを見ることはできません。私は "safeSubscribe()"を見ることができます。RxJava2の "unsafeSubscribe()"演算子はどうなりましたか?
削除されましたか? V1で
、デフォルトObservable.subscribe
方法は、(onError
とonCompleted
をクラッシュなど)いくつかの誤用または他の非従来型の挙動から保護するために(SafeSubscriber
呼ばれる)着信Subscriber
上安全ラッパーを追加しました。
これは一般的unsafeSubscribe
が最もオペレータによって導入され、採用されたこのようオペレータに不利ました。反応ストリーム仕様はonNext
、onError
とonComplete
方法をクラッシュ禁じとして
V2はObserver
行動に関して非常に厳しくなりました。 Observer
を実装するときに人々が明示的にこれらのメソッドでクラッシュしないようにするか、lambda-subscribe()
メソッドを代わりに使用するだけで、デフォルトの安全ラッピングは削除されています。したがって、基本的な前提はObserver
がうまく動作するようになったことです。したがって、unsafeSubscribe
メソッドは不要になりました。 APIリフレッシュ機会(メジャーバージョンジャンプの間にバイナリ互換性は必須ではありません)であるため、さまざまな理由で古いメソッドを削除したり名前を変更することができました。
残念ながら、いくつかの実装はまだこの点で信頼性の低いだったと古いセーフティネットを期待しました。井戸プレーヤーを傷つけるのを避けるために、可能な限り正常にそのような誤動作を防御する方法が導入されました(safeSubscribe
)。
コメント ためのおかげで私はあなたのポイント、理解を得ました。なぜそれが削除されたのかが明らかになるように、wikiに記載する必要があります。私はRxJava1にある "Intro To Rx" Githubリソースに従っていましたが、serialize()演算子を使用するために、unsafeSubscribe()を使ってポイントを証明していました。これについてあなたは何を言いますか?シリアライズは、状況によってはまだ有効ですか? –
私は多くの人々(オペレータの作家以外)が 'unsafeSubscribe'について知っているとは思わない。メソッドに関する[wiki](https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#instance-methods)の表を更新しました。シリアライズ - >それはもう役に立たないと思うし、おそらく3.xで削除されるだろう。 Observableプロトコルのシリアライゼーション要件に違反した初期のオペレータ作家には、ある程度の価値がありました。今日、ほとんどの人はカスタム演算子の作成が最後の手段であることを知っています。しかしそれは別の議論です。 – akarnokd
RxJavaの今後の方向性に関するこの小さなアップデートについて知っておくとよいでしょう。あなたの時間をもう一度ありがとう。 –