Moissonneuse-batteuse rapide
ÉDITEURS ET ABONNÉS
Dans cet article, nous examinerons les bases de deux composants clés PUBLISHER & SUBSCRIBER de combine framework . Apple a introduit le framework système intégré appelé Combine en 2019. Le framework fournit des API déclaratives pour traiter les données au fil du temps.
Éditeur
Publisher est un type qui confirme à Protocol Publisher. Il peut émettre des événements vers un ou plusieurs abonnés.
Publisher Protocol est générique sur deux types
- Sortie → C'est le type de valeurs de sortie qui est émis par l'éditeur
- Échec → C'est le type d'erreur qui est générée lorsque l'éditeur ne parvient pas à émettre des valeurs
- La valeur de sortie/s
- Un achèvement
Un éditeur n'émettra les événements que lorsqu'il est abonné.
L'une des fonctions clés de Publisher est la réception, qui prend le paramètre d'entrée de l'abonné pour correspondre à la sortie de l'éditeur.
Abonné
L'abonné définit le type d'entrée qu'il doit recevoir de l'éditeur.
Le protocole d'abonné est générique sur deux types
- Entrée → C'est le type de valeurs d'entrée qui peuvent être gérées par l'abonné
- Échec → C'est le type d'erreur qui peut être géré par l'abonné lors de la réception d'un échec de l'éditeur
Travailler avec l'éditeur et l'abonné
Création de l'éditeur
L'éditeur peut être créé à l'aide de l'un des types fournis par le cadre de combinaison comme Just, Future, PassthroughSubject, CurrentValueSubject, etc.
Création d'un abonné
L'abonné peut être créé à l'aide des types intégrés tels que
- Couler
- Attribuer
Le récepteur est le moyen le plus simple d'attacher un abonné à un éditeur
Sink fournit deux fermetures, l'une pour accepter et gérer la valeur de l'éditeur et l'autre pour gérer l'achèvement
Affecter à: )
Assign to will prend la valeur de l'éditeur et l'assigne à un objet donné
Exemples : démonstration du fonctionnement de l'éditeur et de l'abonné
Séquence
Sequence Publisher émettra une séquence de valeurs puis appellera la complétion à la fin.
Sortir:
Dans l'exemple donné, nous pouvons voir que l'éditeur émet d'abord toutes les valeurs dans un ordre séquentiel et appelle enfin le bloc de complétion
Juste
Just Publisher émettra instantanément sa sortie à chaque abonné exactement une fois, puis se terminera.
Just Publisher ne peut pas échouer avec une erreur.
Sortir:
Comme mentionné, Just termine l'achèvement juste après l'envoi de la valeur actuelle.
Avenir
Le futur éditeur émettra la valeur ou l'échec d'une opération asynchrone puis se terminera. Future le faisant avec l'aide d'une fermeture appelée Promise. La promesse prendra un paramètre de résultat qui peut être une valeur ou un échec. Future se terminera juste après avoir reçu la valeur ou l'échec dans Promise.
Dans l'exemple ci-dessus, nous pouvons voir que le Future invoque une fermeture de promesse qui prend la valeur.
Sortir:
Ici, "Started Running" est imprimé en premier, car l'abonné s'abonne d'abord à l'éditeur, qui démarre le travail asynchrone. Ensuite, il imprime "End" car l'opération asynchrone est en cours et enfin il imprime la valeur reçue et l'achèvement reçu.
PassthroughSubject
PassthroughSubject émettra plusieurs valeurs et n'a pas de valeur initiale. Lors de l'attachement d'un abonné, il peut recevoir une valeur de la méthode send (: ).
Dans l'exemple ci-dessus, nous pouvons voir que PassthroughSubject n'a pas de valeur initiale. Lors de l'envoi de la valeur à l'éditeur à l'aide de la méthode send (: ), cela entraîne son émission lors du rappel de la valeur de réception de l'abonné.
Sortir:
CurrentValueSubject
CurrentValueSubject émettra la valeur actuelle et elle devrait être initialisée avec la valeur initiale lors de sa création. En y attachant un abonné, l'éditeur peut recevoir une valeur de la méthode send (: ) identique à PassthroughSubject. La valeur actuelle de l'éditeur est accessible à l'aide de la propriété value . La même chose peut être utilisée pour attribuer une nouvelle valeur actuelle à l'éditeur.
L'exemple ci-dessus montre que l'éditeur est initialisé avec la valeur initiale 0. Comme PassthroughSubject, nous pouvons également envoyer des valeurs à l'éditeur en utilisant la méthode send (:).
La propriété value dans CurrentValueSubject est utilisée pour obtenir la valeur actuelle et également pour attribuer la valeur actuelle comme mentionné.
Sortir:
Abonnement
L'éditeur souscrit par l'abonné est appelé Abonnement. L'abonnement confirme le protocole « Annulable ».
[Remarque : Il est recommandé d'annuler l'abonnement lorsque l'abonné ne souhaite plus recevoir de valeur de l'éditeur. Il peut être annulé en utilisant la méthode "annuler". S'il n'est pas explicitement appelé, il n'arrêtera l'abonnement que lorsque l'éditeur aura terminé]
Sortir:
J'espère que j'ai couvert quelques notions de base qui vous aideront à jouer avec l'éditeur et l'abonné. Bon apprentissage!
Merci :)
![Qu'est-ce qu'une liste liée, de toute façon? [Partie 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































