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 :
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 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.
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