1
我与RX运营商乱搞,并很好奇,为什么just(null).repeat()
不作为参数工作,任何内置的运算符:奇怪的行为
Observable.interval(1, TimeUnit.SECONDS)
.sample(Observable.just(null).repeat())
.subscribe(System.out::println);
我本来预计会打印0 1 2 3 ...
但它只是挂起。我想这是因为repeat
霸占了默认Scheduler
,但是,如果你换的interval
的角色和just-repeat
然后它按预期工作,印刷null
每秒一次:
Observable.just(null).repeat()
.sample(Observable.interval(1, TimeUnit.SECONDS))
.subscribe(System.out::println);
怎么回事请告诉我?
ooooohh,这很有道理。我忘记了间隔默认为不同的调度程序。 D'哦! – flakes
也看起来像重复可以把一个调度程序作为参数! '重复(Schedulers.computation())' – flakes