2017-11-29 25 views
0

私はこれらの方法に遭遇し、私がドキュメントから得たものから、ほぼ同じことをします。コードを見ると、彼らは明らかに違うことをしています。初心者からsingle()まではObservable(なぜ?)を返しますが、toSingle()は実質的にSingleを返します。Observable#single()とObservable#toSingle()の違いは?

反応的な世界に関する私の限られた知識は私に、なぜこれらの方法が両方とも存在するのか不思議に思っています。彼らはどのような違いがありますか?いずれかの人が他の人を使うべきですか?

immediatelyのいずれかまたは両方がObservableSingleに変換し、アイテムを発行していない場合はエラーをスローしますか?あるいは、彼らはイベントが放出されるのを待っていますか?私をバッフル

もう一つは、特に彼らはsingle()大理石の図のように振る舞うべきで、彼らの大理石の図は (toSinglesingle)異なっていることが、そのドキュメントは、彼らはまったく同じように動作しなければならないと言うことです。ここ

はドキュメントは、次のとおり Observable#toSingle Observable#single

+0

各オペレータのドキュメントへのリンクを提供できますか? – Enigmativity

答えて

3

single()は元のReactiveX演算子セットの一部です。 SingleがRxJavaに導入されたときに、toSingle()が後で追加されました。

どのような違いがありますか?

これらは、異なる基本反応性クラスを返します。 single()Observableとなり、toSingle()Singleに変換されます。

いずれか一方が他方を使用する必要がありますか?

すぐにRxJava 2.xに移行する予定があるかどうか、使用するタイプによって異なります。 RxJava 2では、toSingleがなく、(ほとんどの)演算子は、より適切な型(single(T)singleOrError()またはsingleElement())を返します。

彼らの大理石の図は、異なる

toSingleの大理石は、エラーケースを備えていないされており、Singleタイプの時間図はObservableよりも時間をかけてイベントを表すために、わずかに異なる慣習があります。

0

Iの両方が複数のアイテム(文書状態など)が供給される場合の両方でエラーが生成され、上流の完了時に1つのアイテムを生成する、両者が同一であることを信じますこれらの両方の方法が存在する理由、(1).single()(1).toSingle()または実際observable.takeそれらを使用する安全な方法はobservable.takeになりそう

関連する問題