컨텍스트 : 많은 ConnectableObservable
이 있는데 거의 모든 재생 횟수는 1 이상입니다. 주어진 시간에 구독하고 구독을 취소하는 관찰자가 많이 있습니다.RxJS : 가입 순간 이후에만 방출되는 Observable 데이터를 어떻게 구독합니까?
내가 원하는 것 : 많은 경우 관찰자가이 관찰 대상 중 하나에 구독하면 관찰 대상의 데이터 재생 메커니즘으로 인해 수신 할 수있는 기존의 방출 된 데이터는 신경 쓰지 않습니다. 최근에 구독 한 관찰자가 관심을 갖는 유일한 데이터는 가입 순간 이후에 방출되는 데이터입니다.
const observable = Rx.Observable
.interval(100)
.take(4)
.publishReplay(3);
observable.connect();
문제 : 관찰자의 관찰에 가입 할 때 지금까지 내가 말할 수있는, 그것은 전에 또는 가입의 순간 후 방출 된 관찰합니다 데이터 여부를 알 수있는 방법이 있습니다.
observable.subscribe(x => console.log('observed', x));
setTimeout(() =>
observable.subscribe(y => console.log('delayed observed', y)),
400
);
가 출력 위 코드 :
// => observed 0
// => observed 1
// => observed 2
// => delayed observed 0 **don't care**
// => delayed observed 1 **don't care**
// => delayed observed 2 **don't care**
// => observed 3
// => delayed observed 3
이 가상의 상황에서, 지연은 관찰자 구독 잠시 후 출사 데이터에만 관심이다; 이 경우 3
입니다.
나는 RxJS 5 reference docs을 샅샅이 뒤졌고, 내가 무엇을했는지 달성하기 위해 은색 총알 연산자를 찾지 못하는 것 같습니다. 어떤 아이디어?
이 함께 해결하기 위해 노력하고있는 실제 문제가 무엇입니까? 덜 추상적 인 예를 제공 할 수 있습니까? – jonrsharpe
누가 재생해야합니까? 지연된 관측자는 재생되지 않는 스트림의 버전을 구독 할 수 없습니까? – Ptival
원하는 것은 HOT Observables입니다. 이 문서를 확인하십시오. https://github.com/Reactive-Extensions/RxJS/blob/master/doc/gettingstarted/creating.md#cold-vs-hot-observables –