Question

I regardé vidéo et je sais que les principes généraux - se chaud même quand personne est abonné, le froid arrive « à la demande ». En outre, publier () convertit froid au chaud et Defer () convertit chaud au froid.

Mais encore, je sens que je suis absent les détails. Voici quelques questions que je voudrais avoir répondu:

  • Pouvez-vous donner une définition complète de ces termes?
  • Est-il jamais judicieux d'appeler Publier sur un observable chaud ou Différer sur un rhume?
  • Quels sont les aspects de Hot / conversions à froid - Perdez-vous des messages, par exemple
  • ?
  • Y at-il des différences entre les définitions chaudes et froides pour IObservable et IEnumerable?
  • Quels sont les principes généraux que vous devriez prendre en compte lors de la programmation pour le froid ou chaud?
  • Les autres conseils sur chaud / froid observables?
Était-ce utile?

La solution

J'espère que cette aide.

  

Pouvez-vous donner une approche globale      définition de ces termes?

Voir mon blog à: http://leecampbell.blogspot.com/2010/08/rx-part-7-hot-and-cold-observables.html

  

-t-il jamais judicieux d'appeler      Publier sur un observable ou Différer chaud      sur un rhume?

Non, pas que je peux penser.

  

Quels sont les aspects de chaud / froid      conversions - Perdez-vous des messages,      par exemple?

Il est possible de messages « perdre » lorsque le Observable est chaud, comme des « événements » se produisent quels que soient abonnés.

  

Y at-il des différences entre chaud et      Définitions et froides pour IObservable      IEnumerable?

Je ne comprends vraiment la question. J'espère que cette analogie aide bien. Je comparerais un Hot Observable à un IEnumerable évalué Ardemment. à-dire une liste ou un tableau sont tous les deux Ardemment évalués et ont été renseignés, même si personne ne enuemerates sur eux. Une déclaration de rendement qui obtient des valeurs à partir d'un fichier ou d'une base de données pourrait être évaluée paresseusement avec le mot-clé de rendement. Alors que paresseux peut être bon, il sera par défaut, être réévaluée si le deuxième recenseur passe au-dessus. En comparant ces à Observables, un Observable chaud peut être un événement (cliquez sur le bouton) ou une alimentation de températures; ces événements se produiront indépendamment d'un abonnement et seraient également partagés si plusieurs souscriptions ont été faites à la même observale. Observable.Interval est un bon exemple d'une observable froide. Elle ne commencera à produire des valeurs lorsqu'un souscription. Si plusieurs abonnements en fait, la séquence sera réévaluées et les « événements » se produisent à des moments séparés (en fonction du temps entre les abonnements).

  

Quels sont les principes généraux que vous devriez prendre en compte lors de la programmation pour le froid ou chaud?

Reportez-vous au lien dans le premier point. Je recommande également vous regardez dans Publsh utilisé conjointement avec RefCount. Cela vous permet d'avoir la possibilité d'avoir une sémantique d'évaluation paresseuse de froid, mais Observables le partage des événements Hot Observables obtenir.

  

Les autres conseils sur chaud / froid      observables?

vous salir les mains et un jeu avec eux. Une fois que vous avez lu à leur sujet pendant plus de 30 minutes, puis le temps passé avec eux le codage est beaucoup plus productif pour vous que la lecture plus:)

Autres conseils

Hot sont ceux observables qui poussent même lorsque vous n'êtes pas abonné à l'observable. Comme la souris se déplace, ou minuterie tiques ou quelque chose comme ça. froids sont ceux observables qui commencent à pousser que lorsque vous vous abonnez, et ils recommencent si vous vous abonnez à nouveau.

ne fait pas semblant de donner une réponse complète, je voudrais résumer en une forme la plus simple ce que je l'ai appris depuis le temps de cette question.

observable Hot est une correspondance exacte pour l'événement. Dans les événements, les valeurs sont généralement introduites dans le gestionnaire, même si aucun abonné ne l'écoute. Tous les abonnés reçoivent le même ensemble de valeurs. Du fait de suivre le modèle « événement », sont chauds observables plus facile à comprendre que les froids.

Froid observable est aussi comme un événement, mais avec une torsion - événement observable à froid est pas une propriété sur une instance commune, il est une propriété sur un objet qui est produit à partir d'une usine chaque moment où quelqu'un souscrit. De plus, l'abonnement commence la production des valeurs. En raison de ce qui précède, plusieurs abonnés sont isolés et chacun reçoit son propre ensemble de valeurs.

La plus courante erreur débutants RX font est de créer un observable à froid (bien, pensant qu'ils créent un observable à froid) en utilisant des variables d'état dans une fonction (total cumulé de F.E.) et non l'enveloppant dans une déclaration .Defer (). En conséquence, plusieurs abonnés partagent ces variables et les effets secondaires de la cause entre eux.

Observable

Conceptuellement, observable est tout simplement une enveloppe autour d'une source de données ou d'un événement, fournissant une interface pratique pour traiter la source en tant que flux de données qui met à jour ses valeurs en temps réel.

Observable froid

Dans la version « froide », la source n'est pas active et peut être comparé à Blueprint, des classes ou des prototypes. D'où l'observable ne produit rien. Comme un flux en attente ou suspendu. Cela en fait une pure valeur que vous pouvez passer en toute sécurité à une fonction pure. Un bon exemple est un compteur suspendu qui commence toujours avec 1 quand il est activé.

« Abonnement » à un « observable à froid » signifie deux choses: créer (ou bifurquent) une instance de flux de données actif et de fixation de l'abonné. La première partie est similaire à la création d'objets d'une classe. La deuxième partie est la souscription effective et par lui-même, n'a rien à voir avec la première partie.

Hot Observable

Le « observable chaud » est déjà une instance qui est en cours d'exécution. Comme un objet créé à partir du prototype et prêt à l'emploi. Et est abonnée mettant en jeu uniquement la fixation d'observateur réel. Aucune partie d'activation est nécessaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top