トピックのドキュメントが疎であるため、そこに「エントリポイント」を見つけるのは難しいです。異なるRxJS科目のセマンティクスは何ですか?
答えて
セマンティクスは、被験者の種類によって異なります。私はバニラ(Rx.Subject
)と特別目的の科目(他の3つ)の2種類に分けます。特別目的科目は、専門化(例:完了/再接続行動)のために、いくつかの注意点があるバニラ科目のセマンティクスの一部を共有します。 (彼らは彼らのプロトタイプ上dispose
ハンドラを持っているようにし、使い捨てインタフェース)
バニラRx.Subjectセマンティクス
主な機能
- 被験者オブザーバ、観測可能なインタフェースを実装します。ことを意味し、とりわけ、彼らが持っている:
- オブザーバーインターフェース:
onNext
、onError
、onComplete
方法 - 観測可能なインターフェース:
subscribe
方法あなたが観察者にまたは観測可能に対象をキャストすることができ
- オブザーバーインターフェース:
- 追加のインタフェース(
.asObserver()
、.asObservable()
)の実装が隠れている必要がある場合は、対象が観測可能である場合は、複数のオブザーバーを登録することができます。 - その観測者は、そのデータをすべてのオブザーバーにブロードキャストします。内部的には、被験者は一連のオブザーバーを維持する。
- 対象がオブザーバである場合、オブザーバと、2つの異なるエンティティである対象を構成するオブザーバとオブザーバブルの両方をサブスクライブできます。ユースケースであれば、別のエンティティとは独立して使用することができます。
- unsubscribe all observers and release resources.
- 被験者は、スケジューラを取るのではなくall serialization and grammatical correctness are handled by the caller of the subject.が
- 被験者のデフォルトの動作は、オブザーバーに同期その値を発するようにあることを前提としていないだろう主題をINGの
dispose
、は最初の加入オブザーバーで始まります最後のまで。ほとんどの場合、注文は問題にはなりません。この文法は観察配列は加入観察インスタンスにonNextメッセージの任意の量(0以上)を送信することができ、必要に応じて、続い:
- 被験者オブザーバ、観測可能なインタフェースを実装します。ことを意味し、とりわけ、彼らが持っている:
IはRxjs contract and grammarの重要な側面を引用します単一成功(oncompleted)または失敗(onError)メッセージです。
(
new Rx.Subject()
で作成した)バニラ対象は、その文法を実装していますonCompleted
が一度呼び出されたときに、onNext
へのすべての後続の呼び出しは無視されます。同じオブザーバー上のonCompleted
の2番目の呼び出しも無視されます。オブザーバーがサブジェクトの観測可能な側に加入している場合、そのonComplete
コールバックが直ちに呼び出されます()。(jsfiddle)の観察にその観察者を接続する被写体を返し
作成
new Rx.Subject()
。この例は公式
documentationから取られ、サブジェクトをプロキシとして使用する方法を示しています。サブジェクトはソース(オブザーバー側)にサブスクライブされ、オブザーバー(観察可能な側)によっても聴かれます。
Rx.Subject.create(observer, observable)
onNext
(オブザーバー側)への呼び出しにより、オブザーバーごとに同じ値の
onNext
が呼び出されます。
指定観察と観察から被写体を作成します。それら2つは必ずしも接続されていません。ソケットからデータを送受信するために使用されるサブジェクトを返すRx.Dom.fromWebSocket
の実装では、良い例が見られます。サブジェクトのオブザーバ側がデータをソケットに送信します。観測可能な側は、ソケットからの着信データをリッスンするために使用されます。また、このように作成されたサブジェクトにはdispose
メソッドがありません。
専門Rx.Subjectセマンティクス
- この
reactivex.io
documentationはかなり専門科目の意味論のほとんどをカバーしています。 - その他の興味深い点は、過去の完了動作に関することです。
- 行動を示すサンプルコードうまくいけば、私はあまり間違って取得していないasync、behavior、replay
のためにここにいます。私は訂正させていただきます。最後に、RxJS v4ではこれが有効であるはずです。ホット/コールド観測の行動の詳細な説明については
、1はを参照できます。これは素晴らしい答えですHot and Cold observables : are there 'hot' and 'cold' operators?
- 1. RxJS科目とAngular2科目
- 2. RxJS他の行動科目からの行動科目を作成する適切な方法?
- 3. ScalaでLong.toIntのセマンティクスは何ですか?
- 4. d2:opDotのセマンティクスとは何ですか?
- 5. withValueBackReferenceのセマンティクスは何ですか?
- 6. Java:compareToインタフェースのセマンティクスとは何ですか?
- 7. スプリット1データに応じて異なる科目に従う
- 8. 異なる* Targetプロパティの目的は何ですか?
- 9. 2つの異なる科目が1つのテーブルを使用する
- 10. rxjsで `expand 'とは何か
- 11. RxJS - オペレータのポイントは何ですか?
- 12. rxjsのwhile()置換は何ですか?
- 13. Angular2で 'rxjs/Subject'とは何ですか?
- 14. ローダーのsourceComponentの親のセマンティクスは何ですか?
- 15. URI内のスキームに続くダブルスラッシュのセマンティクスは何ですか?
- 16. 「* thisへの移動セマンティクスの拡張」とは何ですか?
- 17. RxJava - 科目の使用
- 18. Kotlinクラスの初期化セマンティクスとは何ですか?
- 19. C++:std :: function constnessのセマンティクスとは何ですか?
- 20. Androidロギング関数(Log.v()など)の戻り値のセマンティクスは何ですか?
- 21. ユニークなポインタxvalueセマンティクス?ラムダf2の動作がラムダf1と異なるのはなぜですか?
- 22. 学生と科目へのシンプルなシステムを作成する
- 23. Eq1/Ord1タイプクラスの目的とセマンティクス
- 24. 静的な目的は何ですか?
- 25. Javaでは、オブジェクトとしての配列のセマンティクスは何ですか?
- 26. RxJs APIのbindCallbackとbindNodeCallbackの違いは何ですか?
- 27. rxjs 5のパブリッシュとマルチキャストの違いは何ですか?
- 28. ReactjsとRxjsの違いは何ですか?
- 29. rxjs、observer.next()とobserver.onNext()の違いは何ですか?
- 30. "rx"パッケージと "rxjs" npmパッケージの違いは何ですか?
。これはRxJSのドキュメントにあります:https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/subjects.md PRを追加して追加できますか? @ user3743222 – HipsterZipster
偉大な答え、努力をしてくれてありがとう。 –