모든 Rx Observable은 기본적으로 Cold입니까?
기본적으로 , 주제를 제외한 모든 Rx 관찰 가능 항목은 콜드입니다. 즉, 구독한 관찰자가 한 명 이상 있을 때만 값을 방출합니다.
Cold Observable을 Hot Observable로 전환하는 Rx 연산자
두 개의 주요 연산자가 있습니다. Cold Observable을 Hot Observable로 변환할 수 있습니다:
withLatestFrom 연산자 및 Cold Observables
withLatestFrom은 차가움을 변경하지 않습니다. 또는 관찰 가능한 것의 뜨거움. 귀하의 예에서:
Rx.fromEvent 및 Hot/Cold 동작
CodePen 예제에서 관찰한 불일치는 Rx.fromEvent 관찰 가능 항목을 구독할 때가 아니라 요소를 클릭할 때만 이벤트가 발생한다는 사실에 기인합니다. 이로 인해 Observable에 대한 각 구독은 다른 이벤트를 받습니다.
Cold Observable에 대한 단순화된 흐름 다이어그램
콜드 Observable에 대한 단순화된 데이터 흐름을 설명하려면 다음을 수행하세요.
Source -> Observer1 -> Observer2
Hot에 대한 단순화된 흐름 다이어그램 Observables
핫 Observable의 경우 흐름은 다음과 같습니다.
Source -> Subject -> Observer1 -> Observer2
주제는 중앙 허브 역할을 하며 멀티캐스트 수신 구독한 모든 관찰자에게 데이터를 보냅니다.
멀티캐스팅 연산자 (게시/공유)
멀티캐스팅 연산자는 내부적으로 주제를 생성하고 연결 가능한 Observable을 반환합니다. Observable이 연결되면 주체는 업스트림 Observable을 구독하고 구독한 모든 관찰자에게 데이터를 멀티캐스트합니다.
연산자 사용 시 데이터 흐름 고려
데이터 흐름 이해 그리고 운영자의 행동이 중요합니다. 관찰 가능 항목이 핫하더라도 후속 연산자가 핫 또는 콜드 동작에 어떤 영향을 미칠 수 있는지 고려하는 것이 중요합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3