SampledPublisher(采样发布者)

SampledPublisher 基于另一个发布者的事件,对一个发布者的输出进行采样。

用法

这个例子展示了如何每 60 秒采样一次来自“温度发布者”的值。 温度传感器可能会发送许多值,而计时器正好每 60 秒发送一个值。 通过对计时器进行采样,生成的发布者每 60 秒发出最新的温度测量值。

请注意,一个值不会被采样两次。

如果温度传感器在一整分钟内没有发出值,则采样发布者不会发送任何值。

    let timer = Timer.publish(every: 60, on: RunLoop.main, in: .default)
    temperature
        .sample(timer)
        .sink { temperature in print("The temperature is \(temperature)" }

演示

rxmarbles/sample screenshot

安装

Package.swift

编辑 Package.swift 文件。 将 SampledPublisher 添加为依赖项

let package = Package(
    name: " ... ",
    products: [ ... ],
    dependencies: [
        .package(url: "https://github.com/berikv/SampledPublisher.git", from: "1.0.0") // here
    ],
    targets: [
        .target(
            name: " ... ",
            dependencies: [
                "SampledPublisher" // and here
            ]),
    ]
)

对于 .xcodeproj 项目

  1. 打开菜单 File > Add Packages... (文件 > 添加包...)
  2. 搜索 "https://github.com/berikv/SampledPublisher.git" 并点击 Add Package (添加包)。
  3. 打开您的项目文件,在 "Targets" (目标)中选择您的目标。
  4. 打开 Dependencies (依赖项)
  5. 点击 + 号
  6. 添加 SampledPublisher