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:
parent
6edb3b1a40
commit
89e01d823a
@ -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!)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user