Pregunta

I visto el video y sé que los principios generales - sucede caliente incluso cuando está suscrito a nadie, frío pasa "a la carta". También, Publicar () convierte frío a caliente y Defer () convierte caliente a frío.

Pero aún así, siento que me falta los detalles. Aquí hay algunas preguntas que me gustaría haber contestado:

  • ¿Puede dar una definición completa de estos términos?
  • ¿Alguna vez tiene sentido para llamar a publicar en un observables caliente o retrasar de un resfriado?
  • ¿Cuáles son los aspectos de conversiones caliente / frío - ¿Se pierde mensajes, por ejemplo
  • ?
  • ¿Hay diferencias entre las definiciones calientes y frías para IObservable y IEnumerable?
  • ¿Cuáles son los principios generales que debe tener en cuenta a la hora de programación para frío o caliente?
  • ¿Alguna otra sugerencia sobre los observables caliente / fría?
¿Fue útil?

Solución

Espero que esto ayude.

  

Puede darle una amplia      definición de estos términos?

Ver mi post blog en: http://leecampbell.blogspot.com/2010/08/rx-part-7-hot-and-cold-observables.html

  

¿Alguna vez tiene sentido a la llamada      Publicar en un observables caliente o Defer      en un frío?

No, no es que se pueda imaginar.

  

¿Cuáles son los aspectos de frío / calor      conversiones - ¿Se pierde mensajes,      por ejemplo?

Es posible que los mensajes "perder" cuando el observable es caliente, como "eventos" ocurren independientemente de los suscriptores.

  

¿Hay diferencias entre caliente y      definiciones frías para IObservable y      IEnumerable?

Realmente no entiendo la pregunta. Espero que esta analogía ayuda sin embargo. Yo compararía un observable caliente a un IEnumerable impaciencia evaluado. es decir, una lista o una matriz son a la vez con impaciencia evaluados y han sido pobladas, incluso si nadie enuemerates sobre ellos. Una declaración de rendimiento que obtiene valores de un archivo o una base de datos podría ser evaluada perezosamente con la palabra clave de rendimiento. Mientras perezoso puede ser bueno, será por defecto, volver a evaluar si un segundo enumerador corre sobre ella. Comparando éstas con observables, un observable caliente podría ser un evento (botón de clic) o una fuente de temperaturas; estos eventos ocurrirán independientemente de una suscripción y también serían compartidos si se han realizado múltiples suscripciones a la misma observale. Observable.Interval es un buen ejemplo de un observable en frío. Sólo se empezará a producir valores cuando se hace una suscripción. Si múltiples suscripciones que hizo entonces la secuencia será re-evaluado y los "eventos" ocurrirán a veces separadas (en función del tiempo entre las suscripciones).

  

¿Cuáles son los principios generales que debe tener en cuenta a la hora de programación para frío o caliente?

Consulte el enlace en el punto uno. También recomendaría usted mira en Publsh ser usado en conjunción con RefCount. Esto le permite tener la capacidad de tener Lazy semántica de evaluación de frío observables, pero la distribución de los eventos que observables ¡Conoce.

  

¿Alguna otra sugerencia en caliente / frío      observables?

ensuciarse las manos y tener un juego con ellos. Una vez que haya leído sobre ellos durante más de 30 minutos, a continuación, el tiempo pasó de codificación con ellos es mucho más productivo para usted que la lectura de los otros:)

Otros consejos

observables calientes son los que están empujando incluso cuando usted no está suscrito a lo observable. Al igual que el ratón se mueve, o garrapatas temporizador o algo por el estilo. observables fríos son los que empezar a empujar sólo cuando se suscribe, y empezar de nuevo si se suscribe de nuevo.

No pretendiendo dar una respuesta completa, me gustaría resumir en una forma más simple de lo que he aprendido desde el momento de esta pregunta.

Hot observables es una coincidencia exacta para el evento. En las pruebas, los valores generalmente se introducen en el controlador, incluso si no hay abonados están escuchando. Todos los suscriptores están recibiendo el mismo conjunto de valores. Debido siguiendo el patrón "evento", observables calientes son más fácil de entender que los fríos.

Cold observables es también como un evento, pero con un toque - El evento de frío observable no es una propiedad en una instancia compartida, es una propiedad de un objeto que se produce a partir de una fábrica de cada uno momento en el que alguien se suscribe. Además, la suscripción se inicia la producción de los valores. Debido a lo anterior, varios suscriptores se aíslan y cada uno recibe su propio conjunto de valores.

El RX error más común de los principiantes cometen es la creación de un resfriado observables (así, pensando que están creando un resfriado observable) utilizando algunas variables de estado dentro de una función (total acumulado F. E.) y no envolviéndolo en una declaración .Defer (). Como resultado, varios suscriptores comparten estas variables y ocasionar efectos secundarios entre ellos.

observable

Conceptualmente, observable es simplemente una envoltura alrededor de una fuente de datos o evento, proporcionando alguna interfaz conveniente para el tratamiento de la fuente como flujo de datos que actualiza sus valores en tiempo real.

Cold observable

En la versión "frío", la fuente no está activo y se puede comparar a blueprint, clases o prototipos. De ahí que el observables no produce nada. Al igual que una corriente pendiente o suspendida. Eso hace que sea un valor puro que puede pasar con seguridad a una función pura. Un ejemplo bien es un contador en suspensión que siempre comienza con 1 cuando se activa.

"Suscripción" a un medio "frío" observables dos cosas: crear (o se bifurcan) una instancia de secuencia de datos activa y fijación del abonado. La primera parte es similar a la creación de objetos de una clase. La segunda parte es la suscripción efectiva y por sí mismo, no tiene nada que ver con la primera parte.

Hot observable

El "caliente observables" ya existe una instancia que se está ejecutando. Al igual que un objeto creado a partir del prototipo y listo para su uso. Y la suscripción es que sólo afecten a la fijación de observador real. No se necesita ninguna parte activación.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top