当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Result.Publisher collect(_:options:)用法及代码示例


实例方法

collect(_:options:)

通过给定的time-grouping 策略收集元素,并发出集合的单个数组。

声明

func collect<S>(
    _ strategy: Publishers.TimeGroupingStrategy<S>,
    options: S.SchedulerOptions? = nil
) -> Publishers.CollectByTime<Self, S> where S : Scheduler

返回值

通过给定策略收集元素并发出集合的单个数组的发布者。

参数

strategy

操作符用于收集和发布元素的时序组策略。

options

用于策略的调度程序选项。

详述

使用 Publisher/collect(_:options:) 按照您提供的 SchedulerStride 指定的时间表发出元素数组。在每个计划的时间间隔结束时,发布者发送一个包含它收集的项目的数组。如果上游发布者在填充缓冲区之前完成,则发布者发送一个包含它接收到的项目的数组。这可能少于请求的 Stride 中指定的元素数量。

如果上游发布者因错误而失败,则此发布者将错误转发给下游接收者,而不是发送其输出。

上面的示例以五个为一组 (Stride) 收集在 one-second Timer 上生成的时间戳。


let sub = Timer.publish(every: 1, on: .main, in: .default)
    .autoconnect()
    .collect(.byTime(RunLoop.main, .seconds(5)))
    .sink { print("\($0)", terminator: "\n\n") }


// Prints: "[2020-01-24 00:54:46 +0000, 2020-01-24 00:54:47 +0000,
//          2020-01-24 00:54:48 +0000, 2020-01-24 00:54:49 +0000,
//          2020-01-24 00:54:50 +0000]"

可用版本

iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Result.Publisher collect(_:options:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。