Maison > Article > interface Web > Les observables Rx sont-ils froids par défaut ? Comprendre le flux de données avec « publier » et « partager »
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 :
withLatestFrom Operator et Cold Observables
withLatestFrom ne change pas la froideur ou la chaleur d'un observable. Dans votre exemple :
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!