1
0
mirror of git://jb55.com/damus synced 2024-09-29 08:20:45 +00:00

debouncer: add new debounce methods

This commit is contained in:
William Casarin 2024-01-16 16:03:10 -08:00
parent 6edb3b1a40
commit 89e01d823a

View File

@ -24,4 +24,30 @@ class Debouncer {
workItem = DispatchWorkItem { action() }
queue.asyncAfter(deadline: .now() + interval, execute: workItem!)
}
func debounce_immediate(action: @escaping () -> Void) {
guard self.workItem == nil else {
return
}
self.workItem = DispatchWorkItem(block: {
self.workItem = nil
})
action()
queue.asyncAfter(deadline: .now() + interval, execute: self.workItem!)
}
func debounce_once(action: @escaping () -> Void) {
guard self.workItem == nil else {
return
}
self.workItem = DispatchWorkItem(block: {
self.workItem = nil
action()
})
queue.asyncAfter(deadline: .now() + interval, execute: self.workItem!)
}
}