You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 18:36:24