1
일반적으로 나는 한 번만 실행, 관찰을 만들 RX 서브 관찰 - 실행 한 번만
Observable observable = someObservable.replay().refCount();
를 사용합니다. - 완벽하게, 내가 원하는대로
observable.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(...);
observable.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(...);
가 observable
한 번만 실행됩니다 : 나는 다음과 같이 observable
여러 번에 가입 할 경우 잘 작동합니다. 지금 다음 작업을 수행하는 경우 :
Observable obs1 = observable.map(...); // call some operators
Observable obs2 = observable.map(...); // call some operators
obs1.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(...);
obs2.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(...);
는 그 다음 observable
두 번 실행됩니다. 어떻게 이런 일이 일어나지 않을지 확신 할 수 있습니까?
전체 시퀀스를 재생하고 싶습니다. 아무 것도 잃고 싶지 않습니다. 내 관찰 가능 항목에 의해 방출되는 모든 n 항목은 구독자 또는 모든 체인으로 방출되어야하며 관측 대상은 – prom85
에 사용됩니다. 이해합니다 .cache() 연산자를 사용할 수 있습니다. 이렇게하면 첫 번째 실행은 관찰 가능을 생성하고 다른 구독자는 똑같은 캐시 된 방출을 얻습니다. .cache는 상태를 유지하는 것으로 생각하십시오. – FriendlyMikhail
이 작동 중입니다. 나는 아직도 혼란 스럽다. 왜냐하면'refCount'가 작동하지 않는 이유는 ...'refCount'와 같은 것처럼 보입니다. 왜냐하면 제가 직접 observable에 가입하고 있다면 (나는 아직 그것에 대해 읽지 않았습니다) ... 'autoConnect'는 대신 잘 작동합니다 ... – prom85