Schnelles Kombinieren
VERLAGER & ABONNENTEN
In diesem Artikel befassen wir uns mit den Grundlagen der beiden Schlüsselkomponenten PUBLISHER und SUBSCRIBER des Combine-Frameworks. Apple hat im Jahr 2019 das integrierte System-Framework namens Combine eingeführt. Das Framework stellt deklarative APIs zur zeitlichen Verarbeitung von Daten bereit.
Herausgeber
Publisher ist ein Typ, der dem Protocol Publisher bestätigt. Es kann Ereignisse an einen oder mehrere Abonnenten senden.
Das Publisher-Protokoll ist in zwei Typen generisch
- Ausgabe → Dies ist die Art der Ausgabewerte, die vom Herausgeber ausgegeben werden
- Fehler → Dies ist die Art von Fehler, der ausgelöst wird, wenn der Herausgeber keine Werte ausgibt
- Der/die Ausgabewert(e).
- Eine Vollendung
Ein Herausgeber gibt die Ereignisse nur aus, wenn er abonniert wird.
Eine Schlüsselfunktion von Publisher ist der Empfang, der den Eingabeparameter vom Abonnenten übernimmt, um ihn an die Ausgabe des Herausgebers anzupassen.
Teilnehmer
Der Abonnent legt fest, welche Art von Eingaben er vom Herausgeber erhalten soll.
Das Abonnentenprotokoll ist in zwei Typen generisch
- Eingabe → Dies ist die Art von Eingabewerten, die vom Abonnenten verarbeitet werden können
- Fehler → Dies ist die Art von Fehler, die vom Abonnenten behandelt werden kann, wenn er einen Fehler vom Herausgeber erhält
Arbeiten mit Herausgeber und Abonnenten
Herausgeber erstellen
Publisher kann mit jedem der vom Combine-Framework bereitgestellten Typen wie Just, Future, PassthroughSubject, CurrentValueSubject usw. erstellt werden
Abonnenten erstellen
Abonnenten können mithilfe der integrierten Typen erstellt werden, z
- Waschbecken
- Zuordnen
Sink ist die einfachste Möglichkeit, einen Abonnenten einem Herausgeber zuzuordnen
Sink bietet zwei Abschlüsse: einen zum Akzeptieren und Verarbeiten des Werts vom Herausgeber und einen zum Vervollständigen
Zuweisen: )
„Assign to will“ übernimmt den Wert vom Herausgeber und weist ihn einem bestimmten Objekt zu
Beispiele: Demonstration der Arbeitsweise von Herausgeber und Abonnent
Reihenfolge
Sequence Publisher gibt eine Folge von Werten aus und ruft am Ende die Vervollständigung auf.
Ausgang:
Im gegebenen Beispiel können wir sehen, dass der Herausgeber zunächst alle Werte in sequentieller Reihenfolge ausgibt und schließlich den Abschlussblock aufruft
Nur
Just Publisher sendet seine Ausgabe sofort genau einmal an jeden Abonnenten und beendet den Vorgang dann.
Nur Publisher kann nicht mit einem Fehler fehlschlagen.
Ausgang:
Wie bereits erwähnt, schließt Just den Abschluss direkt nach dem Senden des aktuellen Werts ab.
Zukunft
Der zukünftige Herausgeber gibt den Wert oder den Fehler eines asynchronen Vorgangs aus und beendet ihn dann. Zukünftig wird dies mithilfe einer Schließung namens Promise geschehen. Promise benötigt einen Ergebnisparameter, der entweder ein Wert oder ein Fehler sein kann. Der zukünftige Wille wird unmittelbar nach Erhalt des Werts oder Scheiterns in Promise beendet.
Im obigen Beispiel können wir sehen, dass die Zukunft einen Promise-Abschluss aufruft, der den Wert übernimmt.
Ausgang:
Hier wird zuerst „Started Running“ gedruckt, da der Abonnent zuerst den Herausgeber abonniert, der die asynchrone Arbeit startet. Dann wird „Ende“ ausgegeben, da der asynchrone Vorgang gerade ausgeführt wird, und schließlich werden der empfangene Wert und der empfangene Abschluss gedruckt.
PassthroughSubject
PassthroughSubject gibt mehrere Werte aus und hat keinen Anfangswert. Beim Anhängen eines Abonnenten kann dieser einen Wert von der Methode send (: ) empfangen.
Im obigen Beispiel können wir sehen, dass PassthroughSubject keinen Anfangswert hat. Das Senden eines Werts an den Herausgeber mithilfe der Methode „senden“ (:) führt dazu, dass dieser im Rückruf „Wert empfangen“ des Abonnenten ausgegeben wird.
Ausgang:
CurrentValueSubject
CurrentValueSubject gibt den aktuellen Wert aus und sollte beim Erstellen mit dem Anfangswert initialisiert werden. Beim Anhängen eines Abonnenten kann der Herausgeber einen Wert von der send (: )-Methode empfangen, genau wie bei PassthroughSubject. Über die Value- Eigenschaft kann auf den aktuellen Wert des Herausgebers zugegriffen werden . Dasselbe kann verwendet werden, um dem Herausgeber einen neuen aktuellen Wert zuzuweisen.
Das obige Beispiel zeigt, dass der Herausgeber mit dem Anfangswert 0 initialisiert wird. Wie bei PassthroughSubject können wir auch Werte mit der Methode send (: ) an den Herausgeber senden.
Die Value- Eigenschaft in CurrentValueSubject wird verwendet, um den aktuellen Wert abzurufen und auch, wie erwähnt, den aktuellen Wert zuzuweisen.
Ausgang:
Abonnement
Der vom Abonnenten abonnierte Herausgeber wird als Abonnement bezeichnet. Das Abonnement bestätigt das Protokoll „ Kündigbar “.
[Hinweis: Es wird empfohlen, das Abonnement zu kündigen, wenn der Abonnent keinen Mehrwert mehr vom Herausgeber erhalten möchte. Es kann mit der Methode „Abbrechen“ abgebrochen werden. Wenn es nicht explizit aufgerufen wird, wird das Abonnement erst beendet, wenn der Herausgeber es abschließt]
Ausgang:
Ich hoffe, dass ich einige Grundlagen behandelt habe, die Ihnen beim Umgang mit Publisher und Subscriber helfen werden. Viel Spaß beim Lernen!
Danke :)

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































