Publishers.MeasureInterval
let subject = PassthroughSubject<Void, Never>()
// Publishers.MeasureInterval Publisher
Publishers.MeasureInterval(upstream: subject, scheduler: DispatchQueue.main)
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine MeasureInterval Error")
case .finished:
print("Combine MeasureInterval Finish")
}
}, receiveValue: { value in
print("Combine MeasureInterval : \(value.timeInterval)")
})
.store(in: &cancellables)
// measureInterval Operator
subject
.measureInterval(using: DispatchQueue.main)
.sink(receiveCompletion: { completion in
switch completion {
case .failure:
print("Combine MeasureInterval Error")
case .finished:
print("Combine MeasureInterval Finish")
}
}, receiveValue: { value in
print("Combine MeasureInterval : \(value.timeInterval)")
})
.store(in: &cancellables)
Timer.scheduledTimer(withTimeInterval: 0.1, repeats: true) { _ in
subject.send(Void())
}
// Combine MeasureInterval : nanoseconds(100535457)
// Combine MeasureInterval : nanoseconds(101047592)
// Combine MeasureInterval : nanoseconds(99104295)
// ...RxSwift
ReactiveSwift
μ°Έκ³
Last updated