Maison  >  Article  >  interface Web  >  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 »

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-29 22:40:29158parcourir

 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'au moins un observateur est abonné.

Opérateurs Rx pour transformer les observables froids en observables chauds

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

  • publier : renvoie un observable connectable, qui ne commencera à émettre des valeurs que lorsqu'il sera connecté.
  • partager : similaire à publier, 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 n'est émis que 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.

Organigramme 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 , multidiffusez 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 d'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.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn