Frage

I das Video und ich kenne die allgemeinen Grundsätze beobachtet - heiß geschieht, selbst wenn niemand angemeldet ist, geschieht kalt „on demand“. Auch Publish () konvertiert kalt nach warm und aufschieben () wandelt heiß zu kalt.

Aber immer noch, fühle ich, dass ich die Details fehle. Hier sind einige Fragen, die ich möchte zu beantworten haben:

  • Können Sie eine umfassende Definition für diese Begriffe?
  • Ist es überhaupt sinnvoll, an einem heißen beobachtbaren oder Aufschieben an einem kalten Veröffentlichen anrufen?
  • Was sind die Aspekte von warm / kalt Conversions - tun Sie Nachrichten verlieren, zum Beispiel
  • ?
  • Gibt es Unterschiede zwischen warmen und kalten Definitionen für IObservable und IEnumerable?
  • Was sind die allgemeinen Prinzipien, die Sie berücksichtigen sollten, wenn für kalte Programmierung oder heiß?
  • Jede andere Tipps warm / kalt Observablen?
War es hilfreich?

Lösung

Ich hoffe, das hilft.

  

Können Sie ein umfassendes geben      Definition für diese Begriffe?

Sehen Sie mein Blog-Post an: http://leecampbell.blogspot.com/2010/08/rx-part-7-hot-and-cold-observables.html

  

Ist es überhaupt sinnvoll, Anruf      Veröffentlichen auf einer heißen beobachtbaren oder aufschieben      an einem kalten?

Nein, nicht, dass ich mir vorstellen kann.

  

Was sind die Aspekte von warm / kalt      Conversions - tun Sie verlieren Nachrichten,      zum Beispiel?

Es ist möglich, „verlieren“ Nachrichten, wenn die beobachtbaren heiß ist, als „Ereignisse“ passieren, unabhängig von Abonnenten.

  

Gibt es Unterschiede zwischen heiß und      Kalt Definitionen für IObservable und      IEnumerable?

ich wirklich nicht, daß die Frage verstehen. Ich hoffe, dass diese Analogie allerdings hilft. Ich würde einen Hot Observable zu einem Eifrig ausgewertet IEnumerable vergleichen. dh eine Liste oder ein Array sind Eifrig beide ausgewertet und wurden aufgefüllt, auch wenn niemand enuemerates über sie. Eine Ausbeute Anweisung, die Werte aus einer Datei oder eine Datenbank bekommt könnte träge mit dem Yield Schlüsselwort ausgewertet werden. Während faul gut sein kann, wird es standardmäßig neu bewertet werden, wenn ein zweiter Enumerator über sie läuft. Vergleicht man diese Observable, ein Hot beobachtbare könnte ein Ereignis (Button klicken) oder eine Zufuhr von Temperaturen sein; diese Ereignisse unabhängig von einem Abonnement passieren und auch geteilt werden würden, wenn mehrere Abonnements auf den gleichen observale gemacht wurden. Observable.Interval ist ein gutes Beispiel für eine Kälte beobachtet werden. Es beginnt nur Werte erzeugen, wenn ein Abonnement gemacht wird. Wenn mehrere Abonnements vorgenommen, dann werden die Sequenz neu bewertet werden und die „Ereignisse“ in eigenen Zeiten (abhängig von der Zeit zwischen Abonnements) auftreten werden.

  

Was sind die allgemeinen Prinzipien, die Sie berücksichtigen sollten, wenn für kalte Programmierung oder heiß?

Siehe den Link in Punkt eins. Ich würde Ihnen empfehlen, in Verbindung auch verwendet werden, schauen Sie in Publsh mit RefCount. Auf diese Weise können Sie die Fähigkeit haben, Verzögerte Auswertung Semantik von Cold Observable zu haben, aber die gemeinsame Nutzung von Ereignissen, die Hot Observable erhalten.

  

Jede andere Tipps warm / kalt      Observablen?

Erhalten Sie Ihre Hände schmutzig und haben ein Spiel mit ihnen. Sobald Sie sie für mehr als 30 Minuten gelesen haben, dann mit ihnen verbrachte Zeit Codierung ist viel produktiver Sie als das Lesen mehr:)

Andere Tipps

Hot Observablen sind diejenigen, die auch drängen, wenn Sie nicht auf die beobachtbaren abonniert haben. Wie Maus bewegt oder Timer Ticks oder so etwas. Kalte Observablen sind diejenigen, die erst beginnen, drücken Sie, wenn Sie sich anmelden, und sie anfangen, wenn Sie wieder abonnieren.

vorgab keine umfassende Antwort zu geben, ich möchte in einer einfachsten Form zusammenfassen, was ich seit der Zeit dieser Frage gelernt.

Hot beobachtbaren ist eine genaue Übereinstimmung für Ereignis. In Ereignisse werden die Werte in der Regel in den Handler zugeführt, auch wenn keine Teilnehmer hören. Alle Abonnenten erhalten den gleichen Satz von Werten. Wegen der nach dem „Ereignis“ Muster, heiß Observablen sind leichter zu verstehen, als die kalte.

Kalt beobachtbaren ist auch wie ein Ereignis, aber mit einem Twist - Cold beobachtbaren Ereignis ist nicht eine Eigenschaft auf einer gemeinsame Instanz, es ist eine Eigenschaft auf einem Objekt, das aus einer Fabrik hergestellt wird jeder Zeit, wenn jemand abonniert. Darüber hinaus beginnt Abonnement die Produktion der Werte. Aufgrund der obigen Ausführungen sind mehrere Teilnehmer getrennt und jeder erhält seine eigenen Werte.

Die häufigste Anfänger Fehler RX machen, ist ein kalter beobachtbar (gut, denken sie eine kalte beobachtbaren erstellen) zu schaffen mit einigen Zustandsvariablen innerhalb einer Funktion (F. E. akkumulierten Gesamt) und nicht in eine .Defer () Erklärung wickeln. Als Ergebnis teilen mehrere Teilnehmer diese Variablen und verursachen Nebenwirkungen zwischen ihnen.

Observable

Konzeptionell beobachtbar ist einfach ein Wrapper um einige Daten oder Ereignisquelle, eine komfortable Schnittstelle bieten die Quelle als Datenstrom zu behandeln, die ihre Werte in Echtzeit aktualisiert.

Kalt Observable

In der „kalten“ Version ist die Quelle nicht aktiv und kann auf Entwurf, Klassen oder Prototypen verglichen werden. Daraus ergibt sich die beobachtbare nicht alles produzieren. Wie ein anhängiger oder suspendiert Strom. Das macht es ein reiner Wert, dass Sie sicher in eine reine Funktion übergeben können. Ein gutes Beispiel ist ein suspendierter Zähler, der immer mit 1 beginnt, wenn aktiviert.

„Abonnieren“ zu einem „kalten beobachtbar“ bedeutet zwei Dinge: Erstellen (oder Forking) eine aktive Datenstrom-Instanz und die Teilnehmer anzubringen. Der erste Teil ist ähnlich wie Objekte aus einer Klasse zu schaffen. Der zweite Teil ist die eigentliche Zeichnung und von selbst, hat nichts mit dem ersten Teil zu tun.

Hot Observable

Die „hot beobachtbar“ ist bereits eine Instanz, die ausgeführt wird. Wie ein Objekt aus dem Prototyp und gebrauchsfertig erstellt. Und die Einschreibungen sind an denen nur die Ist-Beobachterbefestigungs. Kein Aktivierungsteil benötigt wird.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top