Допустим, у меня есть массив элементов [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, и я новичок в программировании Reactive, поэтому реализовать собственный оператор пока слишком сложно.