當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。