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:
withLatestFrom Operator e Cold Observables
withLatestFrom não altera o frio ou o calor de um observável. No seu exemplo:
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.
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