Understanding how a JavaScript ES6 debounce function works
I was asked recently how debouncing works in JavaScript. I knew why I should use it, what it did and that the helper function I'd been using was short and easy to read through. However I didn't grasp what was going on 'under the hood'.