2016-08-26 3 views
0

observable 및 subscriber 목록을 다시 작성하지 않고 나중에 비동기 관찰자 및 trigger/emit 이벤트를 만드는 방법을 알아 내려고합니다. ; MyAsyncObservable 단지가 될 수reactivex java 미래의 임의의 시간에 이벤트를 방출하는 사용자 정의 관찰자 만들기

MyAsyncObservable o = new MyAsyncObservable(); 

o.subscribe(s); 
o.subscribe(s2); 
while(scanner.hasNext()){ 
    o.emit(scanner.nextInt()); // emit T to subscribers. 
} 

Observable.fromAsync(emitter,buffermode)

대신

while(scanner.hasNext(){ 
    Observable<Integer> o = Observable.just(scanner.nextInt()); 
    o.subscribe(s); 
    o.subscribe(s2); 
} 

답변

0

경우, 단지) (차가운 .delay 사용되는 관찰 :

같은 뭔가를 찾고 f.e.를 참조하십시오. 이 :

Observable.just("Hello!").delay(10, TimeUnit.SECONDS).subscribe(System.out::println); 

이 뜨거운 관찰 할 수 있다면, 당신이 10 초 안에 10 명 이상의 배출을 기대하지 않는 가정 버퍼를 (추가 :

Observable 
    .just("Hello!") 
    .onBackpressureBuffer(10) 
    .delay(10, TimeUnit.SECONDS) 
    .subscribe(System.out::println); 

편집 : 아, 그렇군요 - 당신이 원하는 Subject -. PublishSubject 또는 BehaviorSubject 어느 그들을 만들고 통해 그들에게 데이터를 공급 일반적인 onNext/onComplete를 /의 OnError

+0

정말 지연 전송을 찾고되지 않음에 기반 이벤트를 방출 할 것이다 뜨거운 관찰을 만드는 방법을 알아내는 대해 자세히.. 어떤 다른 객체 (열린 공동 연결, 사용자 입력 등). –

+0

편집 : 내 대답을 편집했습니다. –

+0

그리고 그게 내가 찾고 있던거야! 왜 이것이 rxjava 문서의 마지막 주제로 버려 졌는지는 알 수 없습니다. –