Saltar al contenido

¿Cuáles son los observables calientes y fríos?

Solución:

De: Anton Moiseev Libro “Desarrollo angular con mecanografiado, segunda edición”. :

Observables fríos y calientes

Existen dos tipos de observables: caliente y fría. La principal diferencia es que frio observable crea a productor de datos por cada suscriptor, mientras que un crea caliente observable a productor de datos primero, y cada suscriptor obtiene el datos desde un productor, a partir de desde el momento de suscripción.

Comparemos ver un película sobre Netflix para entrar en un cine. Piense en usted mismo como un observador. Cualquiera que decida ver Mission: Impossible en Netflix obtendrá la película completa, independientemente de cuándo presione el botón de reproducción. Netflix crea un nuevo productor para transmitir una película solo para ti. Esto es un frio observable.

Si vas a una sala de cine y la hora del espectáculo es a las 4 pm, el productor se crea a las 4 pm y comienza la transmisión. Si algunas personas (suscriptores) llegan tarde al programa, se pierden el comienzo de la película y solo pueden verla a partir del momento de su llegada. Esto es un caliente observable.

A frio observable comienza a producir datos cuando algún código invoca un suscribir() función en él. Por ejemplo, su aplicación puede declarar un observable que proporciona una URL en el servidor para obtener ciertos productos. La solicitud se realizará solo cuando se suscriba. Si otro script realiza la misma solicitud al servidor, obtendrá el mismo conjunto de datos.

A caliente observable produce datos incluso si ningún suscriptor está interesado en los datos. Por ejemplo, un acelerómetro en su teléfono inteligente produce datos sobre la posición de su dispositivo, incluso si ninguna aplicación se suscribe a estos datos. Un servidor puede generar los últimos precios de las acciones incluso si ningún usuario está interesado en estas acciones.

Los observables calientes son los que impulsan el evento cuando no estás suscrito al observable. Como movimientos del mouse, tics del temporizador o algo por el estilo. Los observables fríos son aquellos que comienzan a presionar solo cuando se suscribe, y comienzan de nuevo si se suscribe nuevamente.

Espero que esto ayude.

¿Puede dar una definición completa de estos términos?

Vea la publicación de mi blog en: http://leecampbell.blogspot.com/2010/08/rx-part-7-hot-and-cold-observables.html

¿Alguna vez tiene sentido llamar a Publicar en un observable caliente o Aplazar en un resfriado?

No, no que yo pueda pensar.

¿Cuáles son los aspectos de las conversiones calientes / frías? ¿Pierde mensajes, por ejemplo?

Es posible “perder” mensajes cuando el Observable está caliente, ya que los “eventos” ocurren independientemente de los suscriptores.

¿Existen diferencias entre las definiciones calientes y frías de IObservable e IEnumerable?

Realmente no entiendo la pregunta. Sin embargo, espero que esta analogía ayude. Compararía un Hot Observable con un IEnumerable evaluado con entusiasmo. es decir, una lista o una matriz se evalúan con entusiasmo y se han poblado incluso si nadie se enamora de ellas. Una declaración de rendimiento que obtiene valores de un archivo o una base de datos podría evaluarse de forma perezosa con la palabra clave Yield. Si bien el perezoso puede ser bueno, de forma predeterminada, se volverá a evaluar si un segundo enumerador lo pasa por alto. Comparándolos con Observables, un Hot Observable podría ser un Evento (clic de botón) o una alimentación de temperaturas; Estos eventos ocurrirán independientemente de una suscripción y también se compartirán si se realizan múltiples suscripciones al mismo observale. Observable.Interval es un buen ejemplo de un observable frío. Solo comenzará a producir valores cuando se realice una suscripción. Si se realizan múltiples suscripciones, la secuencia se volverá a evaluar y los “eventos” ocurrirán en momentos separados (dependiendo del tiempo entre suscripciones).

¿Cuáles son los principios generales que debes tener en cuenta a la hora de programar en frío o en caliente?

Consulte el enlace en el punto uno. También le recomendaría que investigue el uso de Publsh junto con RefCount. Esto le permite tener la capacidad de tener la semántica de evaluación Lazy de Cold Observables pero el intercambio de eventos que obtiene Hot Observables.

¿Algún otro consejo sobre observables fríos / calientes?

Ensúciate las manos y juega con ellas. Una vez que haya leído sobre ellos durante más de 30 minutos, el tiempo dedicado a codificar con ellos es mucho más productivo para usted que leer más 🙂

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *