"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Los observables Rx están fríos por defecto? Comprender el flujo de datos con "publicar" y "compartir"

¿Los observables Rx están fríos por defecto? Comprender el flujo de datos con "publicar" y "compartir"

Publicado el 2024-11-15
Navegar:343

 Are Rx Observables Cold by Default?  Understanding the Flow of Data with  `publish` and `share`

Observables fríos y calientes: comprensión del flujo de datos

¿Todos los observables Rx son fríos de forma predeterminada?

Por defecto , todos los observables de Rx están fríos, excepto los sujetos. Esto significa que solo emiten valores cuando tienen al menos un observador suscrito.

Operadores Rx para convertir observables fríos en observables calientes

Hay dos operadores principales que puede convertir un observable frío en un observable caliente:

  • publicar: devuelve un observable conectable, que solo comenzará a emitir valores cuando está conectado.
  • share: Similar a publicar, pero conecta automáticamente el observable cuando el primer observador se suscribe.

conLatestFrom Operador y Cold Observables

withLatestFrom no cambia la frialdad o el calor de un observable. En su ejemplo:

  • cold$.withLatestFrom(sth$,...) seguirá siendo un observable frío.
  • Si se suscriben varios observables a cold$ usando withLatestFrom, cada uno consumirá la misma secuencia de valores, independientemente de sus tiempos de suscripción.

Rx.fromEvent y Hot/Cold Comportamiento

La discrepancia que observó en el ejemplo de CodePen se debe al hecho de que el evento se emite solo cuando se hace clic en un elemento, no cuando se suscribe al observable Rx.fromEvent. Debido a esto, cada suscripción al observable recibe un evento diferente.

Diagrama de flujo simplificado para observables fríos

Para ilustrar el flujo simplificado de datos para observables fríos:

Source -> Observer1 -> Observer2

Diagrama de flujo simplificado para Hot Observables

Para observables activos, el flujo es:

Source -> Subject -> Observer1 -> Observer2

El sujeto actúa como un eje central, multidifusión entrante datos a todos los observadores suscritos.

Operadores de multidifusión (publicar/compartir)

Operadores de multidifusión cree un sujeto internamente y devuelva un observable conectable. Cuando el observable está conectado, el sujeto se suscribe al observable ascendente y transmite datos a todos los observadores suscritos.

Considere el flujo de datos al utilizar operadores

Comprensión del flujo de datos y el comportamiento de los operadores es crucial. Incluso si un observable está caliente, es importante considerar cómo los operadores posteriores pueden afectar su comportamiento frío o caliente.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3