measureInterval은 Publisher가 발행하는 이벤트 간의 시간간격을 측정하는 Operator에요.
1초마다 현재시간을 발행하는 Timer Publisher을 만들어서 시간간격을 표현해볼게요.
먼저 Timer은 다음처럼 준비해요.
let timerPublisher = Timer.publish(every: 1, on: .main, in: .common)
.autoconnect()
.prefix(5)
이제 measureInterval로 시간간격을 측정합니다.
timerPublisher
.measureInterval(using: DispatchQueue.main)
.sink { value in
print(value)
}
.store(in: &cancellables)
// 결과
(1초 기다린 후)
Stride(_nanoseconds: 1001213333)
(1초 기다린 후)
Stride(_nanoseconds: 999532250)
(1초 기다린 후)
Stride(_nanoseconds: 999930417)
(1초 기다린 후)
Stride(_nanoseconds: 1000034333)
(1초 기다린 후)
Stride(_nanoseconds: 1000014125)