Debouncing
by evildonald
JavaScript
let timeouts = {}
let timeout
function takeLatest(name, fn) {
if (timeouts[name]) clearTimeout(timeouts[name])
timeouts[name] = setTimeout(fn)
}
function sayHi() {
alert('Hi')
}
function HiOnlyOnce() {
takeLatest('sayHi', sayHi)
}
HiOnlyOnce()
HiOnlyOnce()
HiOnlyOnce()
HiOnlyOnce()