我二百十三分之二百十二网页上执行从书Reactive Programming with RxJava一个例子:样品不停止在完成事件
Observable<String> names = Observable
.just("Mary", "Patricia", "Linda", "Barbara",
"Elizabeth", "Jennifer", "Maria", "Susan",
"Margaret", "Dorothy");
Observable<Long> absoluteDelayMillis = Observable
.just(0.1, 0.6, 0.9, 1.1,
3.3, 3.4, 3.5, 3.6,
4.4, 4.8)
.map(d -> (long) (d * 1_000));
Observable<String> delayedNames = names
.zipWith(absoluteDelayMillis,
(n, d) -> Observable
.just(n)
.delay(d, TimeUnit.MILLISECONDS))
.flatMap(o -> o);
delayedNames
.sample(1, SECONDS)
.subscribe(System.out::println);
当我运行的代码,输出为:
Linda
Barbara
Susan
Dorothy
根据(也是我认为的),Dorothy
不应该在那里,因为sample()
应该转发完成事件@ 4.8s。
我正在与rxjava 1.1.6
我错过了的例子吗?
我也认为这是一个错误,因为根据[Observable.sample(Long,Timeunti)javadocs]中的mable图表(http://www.atetric.com/atetric/javadoc/io.reactivex/rxjava/ 1.1.6/rx/Observable.html#sample-long-java.util.concurrent.TimeUnit-),最后一项不应该被发射。 – TmTron