Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Debouncer.swift
- //
- // Created by Sam Oakley on 20/03/2019.
- //
- import Foundation
- class Debouncer {
- private static var pendingRequestWorkItems: [AnyHashable: DispatchWorkItem] = [:]
- static func perform(context: AnyHashable, after: DispatchTimeInterval, block: @escaping () -> Void) {
- let pendingRequestWorkItem = pendingRequestWorkItems[context]
- pendingRequestWorkItem?.cancel()
- let requestWorkItem = DispatchWorkItem(block: block)
- pendingRequestWorkItems[context] = requestWorkItem
- DispatchQueue.main.asyncAfter(deadline: .now() + after,
- execute: requestWorkItem)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement