rx-java2 - 使用间隔时的背压
问题描述
我有这个 RxJava2 可流动的
private val pulseFlowable = Flowable
.interval(200, TimeUnit.MILLISECONDS)
.subscribeOn(Schedulers.computation())
和这个订阅者
pulseFlowable
.observeOn(Schedulers.computation())
.subscribe(
object : Subscriber<Long> {
override fun onSubscribe(subscription: Subscription) {
pulseSubscription = subscription
}
override fun onNext(long: Long?) {
onPulse()
}
override fun onError(throwable: Throwable) {
Timber.e("onError")
}
override fun onComplete() {
Timber.d("onComplete")
}
}
)
它产生一个MissingBackPressureException
,我“有点”理解:由于我在同一个调度程序上订阅和观察,我最初认为可能不会发生背压,但也许这是一个误解。
当我将流动性更改为
private val pulseFlowable = Flowable
.interval(200, TimeUnit.MILLISECONDS)
.onBackpressureLatest()
.subscribeOn(Schedulers.computation())
我不再得到异常,但也没有调用 onNext。这是为什么?
解决方案
推荐阅读
- python - 烧瓶如何在扩展模板中获取变量
- python - 代码没有读取 Elif 或 Else 语句
- javascript - 静态包含 HTML 代码而不是在实时环境中的方法?
- visual-studio-code - 如果 VS Code 扩展选项卡没有打开,有没有办法打开它?
- python - 将 .TXT 数据作为一列拆分为“n”行,如 Python 中的 CSV?
- c - 编写一个文本文件以在 C 程序中保存向量和其他变量
- javascript - 类组件不等待函数返回
- flutter - 有没有办法为 Flutter StatefulBuilder 设置一个定期计时器,每 1 秒用 setState() 更新一次?
- django - 合并查询集时保留重复项(Django)
- python - 为什么我没有在这个高低代码中收到游戏结束消息