第 51 课2026.09.10
只在共享流有人订阅时运行昂贵的轮询任务。
第 51 课:订阅者驱动上游启停
- 日期:2026-09-10
- 课程序号:第 51 课
- 知识点:subscriptionCount 与按需任务
用途
只在共享流有人订阅时运行昂贵的轮询任务。
核心概念
把订阅数量转成布尔值并去重,避免重复启停。
最小代码或操作示例
kotlin
events.subscriptionCount.map { it > 0 }.distinctUntilChanged()
.onEach { if (it) startPolling() else stopPolling() }.launchIn(scope)3~5 分钟练习
依次增加两个订阅者再全部取消,写出信号序列。
参考答案
去重后的序列是 true、false。
与上一课的联系
上一课读取订阅者数量;本课把数量转换成上游启停信号。