我试图弄清楚如何在未来的某个时间创建异步观察者和trigger/emit
事件而不重建observable和订阅者列表。
寻找类似的东西:
MyAsyncObservable o = new MyAsyncObservable();
o.subscribe(s);
o.subscribe(s2);
while(scanner.hasNext()){
o.emit(scanner.nextInt()); // emit T to subscribers.
}
MyAsyncObservable
可能只是Observable.fromAsync(emitter,buffermode)
而不是
while(scanner.hasNext(){
Observable<Integer> o = Observable.just(scanner.nextInt());
o.subscribe(s);
o.subscribe(s2);
}
答案 0 :(得分: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为它们提供数据。