如何在ReactiveSwift中按固定时长+最大数量收集信号值?
用ReactiveSwift实现「定时+定量」的信号收集逻辑
你可以通过组合ReactiveSwift中的collect(every:on:skipEmpty:discardWhenCompleted:)和collect(count:)方法实现该逻辑:
- 若每个时间间隔内累计事件未达最大数量,结果信号会每隔指定时长发送一次收集到的事件;
- 若某时间间隔内累计事件达到最大数量,则立即发送收集到的事件。
示例说明
参数设定:timeInterval = 2秒,maxCount = 2

- 时间间隔1:收到两个值[1,2],在间隔结束时转发
- 时间间隔2:收到一个值[3],在间隔结束时转发
- 时间间隔3:收到三个值[5,6,7](数量超过maxCount),收到7时立即转发[5,6],7归入时间间隔4的接收值(间隔3提前结束)
内容的提问来源于stack exchange,提问作者ChaseChoi
相关产品推荐
相关产品推荐

