"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Os observáveis ​​Rx são frios por padrão? Compreendendo o fluxo de dados com `publicar` e `compartilhar`

Os observáveis ​​Rx são frios por padrão? Compreendendo o fluxo de dados com `publicar` e `compartilhar`

Publicado em 15/11/2024
Navegar:825

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

Observáveis ​​quentes e frios: entendendo o fluxo de dados

Todos os observáveis ​​Rx são frios por padrão?

Por padrão , todos os observáveis ​​Rx são frios, exceto os sujeitos. Isso significa que eles só emitem valores quando têm pelo menos um observador inscrito neles.

Operadores Rx para transformar observáveis ​​frios em observáveis ​​quentes

Existem dois operadores principais que pode converter um observável frio em um observável quente:

  • publish: Retorna um observável conectável, que só começará a emitir valores quando estiver conectado.
  • share: semelhante a publicar, mas conecta automaticamente o observável quando o primeiro observador se inscreve.

withLatestFrom Operator e Cold Observables

withLatestFrom não altera o frio ou o calor de um observável. No seu exemplo:

  • cold$.withLatestFrom(sth$,...) ainda será um observável frio.
  • Se vários observáveis ​​estiverem inscritos em cold$ usando withLatestFrom, eles cada um consumirá a mesma sequência de valores, independentemente dos tempos de assinatura.

Rx.fromEvent e comportamento quente/frio

A discrepância que você observou no O exemplo do CodePen se deve ao fato de que o evento é emitido apenas quando um elemento é clicado, e não quando o observável Rx.fromEvent é inscrito. Por causa disso, cada assinatura do observável recebe um evento diferente.

Diagrama de fluxo simplificado para observáveis ​​frios

Para ilustrar o fluxo simplificado de dados para observáveis ​​frios:

Source -> Observer1 -> Observer2

Diagrama de fluxo simplificado para observáveis ​​quentes

Para observáveis ​​quentes, o fluxo é:

Source -> Subject -> Observer1 -> Observer2

O assunto atua como um hub central, dados de entrada multicast para todos os observadores inscritos.

Operadores de multicast (publicar/compartilhar)

Os operadores de multicast criam um assunto internamente e retornam um observável conectável. Quando o observável está conectado, o sujeito assina o observável upstream e faz multicast de dados para todos os observadores inscritos.

Considere o fluxo de dados ao usar operadores

Compreendendo o fluxo de dados e o comportamento dos operadores é crucial. Mesmo que um observável seja quente, é importante considerar como os operadores subsequentes podem afetar seu comportamento quente ou frio.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3