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()