Poller
@MainActor
public final class Poller
A generic polling utility that repeatedly invokes an async action with configurable delay, cancellation, and completion callbacks.
-
Initializes a Poller with a polling frequency.
Declaration
Swift
@MainActor public init(frequency: TimeInterval = 5)
Parameters
frequency
How often polling occurs, in seconds.
-
Starts polling.
Declaration
Swift
@MainActor public func start( initialDelay: TimeInterval = 0, runImmediately: Bool = false, maxAttempts: Int? = nil, onError: @escaping (Error) -> Void = { _ in }, onComplete: ((Result<Void, Error>) -> Void)? = nil, action: @escaping () async throws -> Void )
Parameters
initialDelay
Delay before the first invocation (in seconds).
runImmediately
Whether to invoke
action
before any delay.maxAttempts
Maximum number of invocations before stopping.
nil
for infinite.action
The async throwing work to perform each attempt.
onError
Called when
action
throws (does not stop polling unless fatal).onComplete
Called when polling stops (success or cancellation).
-
Cancels any ongoing polling immediately.
Declaration
Swift
@MainActor public func cancel()