"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Les observables Rx sont-ils froids par défaut ? Comprendre le flux de données avec « publier » et « partager »

Les observables Rx sont-ils froids par défaut ? Comprendre le flux de données avec « publier » et « partager »

Publié le 2024-11-15
Parcourir:602

 Are Rx Observables Cold by Default?  Understanding the Flow of Data with  `publish` and `share`

Observables chauds et froids : comprendre le flux de données

Tous les observables Rx sont-ils froids par défaut ?

Par défaut , tous les observables Rx sont froids, à l'exception des sujets. Cela signifie qu'ils n'émettent des valeurs que lorsqu'ils ont au moins un observateur abonné.

Les opérateurs Rx pour transformer les observables froids en observables chauds

Il existe deux opérateurs principaux qui peut convertir un observable froid en un observable chaud :

  • publish : renvoie un observable connectable, qui ne commencera à émettre des valeurs que lorsqu'il sera connecté.
  • share : similaire à la publication, mais il connecte automatiquement l'observable lorsque le premier observateur s'abonne.

withLatestFrom Operator et Cold Observables

withLatestFrom ne change pas la froideur ou la chaleur d'un observable. Dans votre exemple :

  • cold$.withLatestFrom(sth$,...) sera toujours un observable froid.
  • Si plusieurs observables sont abonnés à cold$ en utilisant withLatestFrom, ils chacun consommera la même séquence de valeurs, quelles que soient leurs heures d'abonnement.

Rx.fromEvent et Hot/Cold Behavior

L'écart que vous avez observé dans le L'exemple de CodePen est dû au fait que l'événement est émis uniquement lorsqu'un élément est cliqué, et non lorsque l'observable Rx.fromEvent est abonné. Pour cette raison, chaque abonnement à l'observable reçoit un événement différent.

Diagramme de flux simplifié pour les observables froids

Pour illustrer le flux simplifié de données pour les observables froids :

Source -> Observer1 -> Observer2

Diagramme de flux simplifié pour les observables chauds

Pour les observables chauds, le flux est :

Source -> Subject -> Observer1 -> Observer2

Le sujet agit comme un hub central, multidiffusant les données entrantes à tous les observateurs abonnés.

Opérateurs de multidiffusion (publier/partager)

Les opérateurs de multidiffusion créent un sujet en interne et renvoient un observable connectable. Lorsque l'observable est connecté, le sujet s'abonne à l'observable en amont et diffuse les données en multidiffusion à tous les observateurs abonnés.

Considérez le flux de données lors de l'utilisation des opérateurs

Comprendre le flux de données et le comportement des opérateurs est crucial. Même si un observable est chaud, il est important de considérer comment les opérateurs ultérieurs peuvent affecter son comportement à chaud ou à froid.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3