【发布时间】:2017-03-31 12:47:43
【问题描述】:
对 RxJava2 来说有点新意
我在使用 timer 和 combineLatest 时遇到问题,例如:
Observable.combineLatest(
Observable.timer(5, TimeUnit.SECONDS).map { TimedData(it) },
locationDataSource.listen(),
sensorDataSource.listen().
Function3 { timedData, location, sensorEvent -> Combined(timedData, location, sensorEvent) }
).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe {
Log.d(TAG, "Timer -> " + it.timedData)
}
发生的事情是timedData 只更新一次,然后它再也不会触发,所有其他可观察对象都开始更新。
我找到了https://github.com/ReactiveX/RxJava/issues/1717,但它是从 2014 年开始的,所以我认为它已经解决了。
由于 BackPressure,这种情况还会发生吗?
【问题讨论】:
-
见javadoc。它只触发一次,你需要
interval。 -
该死,我想我确实把操作员弄糊涂了。你是对的!我到家时会试试看,但你可能应该写一个答案。
标签: android timer rx-java kotlin