我二百十三分之二百十二網頁上執行從書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