Ich habe viele rx Beispiele über publish() und replay() gelesen. In allen Tutorials heißt es, dass es wichtig ist, publish() vor dem Aufruf von replay() aufzurufen. Warum ist das so? Was passiert, wenn Sie replay() aufrufen und nie publish() aufrufen? Es scheint, als würde der replay() - Operator die beobachtbare Quelle abonnieren und mit dem Caching beginnen. Dann würde jeder, der mitkommt, den gleichen, vollständigen Datenstrom bekommen. Der einzige Grund, warum ich publish() sehen kann, ist, dass das Abonnement für die beobachtbare Quelle verzögert wird, bis connect() aufgerufen wird. Ist das richtig?Warum ist es wichtig, publish() vor der Wiedergabe() zu rufen
Antwort
Sie gelten in der Regel eine oder das andere, aber nicht beides zugleich, weil publish().replay()
keinen praktischen Unterschied zu einem normalen replay()
hat und replay().publish()
ist nur ein Rezept für eine späte Verbraucher die gesamte Sequenz nicht zu sehen.
In allen Tutorials sagen sie, dass es wichtig ist, publish() vor dem Aufruf von replay() aufzurufen.
Das ist definitiv falsch, wo hast du es genau gelesen?
Ist das richtig?
Beide Operatoren geben ein ConnectableObservable
und Sie haben connect
in beiden Fällen rufen die Sequenzen zu starten. In beiden Fällen sollten Sie die Verbraucher vor dem Verbindungsaufbau vorbereiten oder autoConnect(n)
verwenden, um die Sequenz nach n
Verbrauchern zu starten.
Der Unterschied zwischen publish
und replay
, dass der letztere einige oder alle Elemente zwischenspeichert und sie an die Verbraucher wiedergibt, egal, wann sie sich anmelden. Ersteres speichert keine Artikel, nicht einmal den neuesten wie BehaviorSubject
, und versendet den Artikel an die Verbraucher, die ihn genau zu diesem Zeitpunkt abonniert haben.
Ich schätze all Ihre Hilfe bisher. Ich bin immer noch auf den Unterschied zwischen 'Replay()' und 'Replay(). Publish()' fest. Was ist der Unterschied zwischen den beiden Rezepten? –
Replay wird Elemente zwischenspeichern und dann 'publish' wird Teile davon an seine Konsumenten ausgeben, da es den Cache verbraucht und die Fähigkeit des' replay() 'rückgängig macht, dieselben Elemente für alle wiederzugeben, auch wenn sie anfangen zu konsumieren. Ich kann mir nicht vorstellen, dass Sie 'replay(). Publish()' zusammen benutzen. – akarnokd
- 1. Warum ist es wichtig OnInit
- 2. Warum ist es wichtig, die Anzahl der "Kerne" zu erhöhen?
- 3. Warum emplace_back ist wichtig?
- 4. Warum ist die Verbindungssequenz wichtig?
- 5. Warum ist es wichtig, rechenintensiven Code nicht innerhalb der Blockierungsklausel in den Standardausführungsinhalt zu stellen?
- 6. Bedeutung der Bandbreite in CUDA und warum es wichtig ist
- 7. MIPS - Ist es wichtig?
- 8. Lokale Variablen vor Return-Anweisungen, ist es wichtig?
- 9. Warum ist der Zugriffsmodifikator nicht wichtig? Unity3D
- 10. OpenCL Subbuffer, warum ist wichtig?
- 11. Warum ist es wichtig, wo sich eine Typdeklaration befindet?
- 12. Warum ist es wichtig, dass ein Binärbaum ausgeglichen ist?
- 13. Was ist Assoziativität von Operatoren und warum ist es wichtig?
- 14. Ist es wichtig, <label> in HTML zu verwenden?
- 15. Ist es wichtig zu erklären <!DOCTYPE>
- 16. Ist es wichtig, was das Salz ist?
- 17. Warum ist es wichtig, alles in der __init__ Methode zu initialisieren?
- 18. Datenbanken: Spaltencodierung, wann ist es wichtig?
- 19. Ist Dims Position wichtig?
- 20. Warum ist Java Secure Coding wichtig?
- 21. Warum und ist Typisierung im Beispiel wichtig?
- 22. Warum DisposableObserver zu entsorgen ist in diesem Fall wichtig
- 23. Warum ist der Schrägstrich im Webservice so wichtig?
- 24. Warum ist die Reaktionszeit bei der CPU-Planung wichtig?
- 25. Ist es wichtig, den Namespace mit QT_BEGIN_NAMESPACE zu deklarieren. QT_END_NAMESPACE
- 26. Ist es wichtig, AutoCloseable in Java hinzuzufügen?
- 27. Warum ist die Ausrichtung der Datenstruktur wichtig für die Leistung?
- 28. Ist es wichtig, Eigenschaften explizit in PHP zu deklarieren?
- 29. Ist es wichtig, Bild während des Uploads umzubenennen
- 30. Warum sind Klammern in der Funktionszeigerdeklaration wichtig?
Können Sie Links zu den "vielen RX-Beispielen" veröffentlichen? – Enigmativity
Heres, aber es ist auch im Buch im Lesen http://reactivex.io/documentation/operators/replay.html –
Die Aussage "Wenn Sie den Replay-Operator auf ein Observable anwenden, bevor Sie es in ein verbindbares Observable konvertieren, das Ergebnis verbindungsfähiges Observable wird immer die gleiche vollständige Sequenz an alle zukünftigen Beobachter senden, selbst diejenigen Beobachter, die nach dem verknüpfbaren Observable abonnieren, haben damit begonnen, Nachrichten an andere abonnierte Beobachter auszugeben. " ist einfach nur verwirrend für mich. Es macht einfach keinen Sinn für mich. – Enigmativity