Combine with Timer

Combine 2023. 5. 9. 15:06
반응형

Combine으로 Timer를 사용하는 방법은 다음과 같습니다.

  • Timer
import Combine

var timerCancellable: Cancellable?

// 1초마다 수행
timerCancellable = Timer.publish(every: 1, on: .main, in: .common).autoconnect().sink { [weak self] _ in
	...        
}

// 타이머 취소하기
timerCancellable?.cancel()

 

  • RunLoop
import Combine

var timerCancellable: Cancellable?

// 1초 마다 수행
let mainRunLoop = RunLoop.main
timerCancellable = mainRunLoop.schedule(after: mainRunLoop.now, interval: .seconds(1), tolerance: .milliseconds(0)) {
    ...
}

// 타이머 취소하기
timerCancellable?.cancel()

 

  • DispatchQueue
import Combine

var timerCancellable: Cancellable?
let mainQueue = DispatchQueue.main
// 1초마다 수행
timerCancellable = mainQueue.schedule(after: mainQueue.now, interval: .seconds(1)) {
   ...
}

// 타이머 취소하기 
timerCancellable?.cancel()
반응형
Posted by 까칠코더
,