1

要素の配列と秒[1, 2, 3]の遅延があるとしましょう。5

現在の要素と次の要素の間に一時停止して、配列の各要素を放出したいと考えています。

例:

出力:

[00:00] -- 1
[00:05] -- 2
[00:10] -- 3

私は次のことを試みました:

import ReactiveSwift

let startTime     = DispatchTime.now().uptimeNanoseconds
let arrayProperty = MutableProperty<[Int]>([1, 2, 3])
let arraySignal   = arrayProperty.signal
arraySignal
    .flatMap { $0 }
    .delay(2, on: QueueScheduler.main)
    .observeValues { element in
        let elapsed = DispatchTime.now().uptimeNanoseconds
        print("\((elapsed - startTime) / 1_000_000_000) -- \(element)")
    }

ただし、最初の要素の放出を遅らせるだけで、次の要素をすぐに放出します。

使用する適切なオペレーター ミックスが見つかりませんでした。ReactiveSwift フレームワークにない可能性があります。私はリアクティブ プログラミングの初心者なので、独自のオペレーターを実装するのはまだ難しすぎます。

4

1 に答える 1