decko
decko copied to clipboard
@debounce is named improperly — should be @throttle
In the docs its says:
To debounce means "call this at most once per N ms". All outward function calls get collated into a single inward call, and only the latest (most recent) arguments as passed on to the debounced function.
What you're doing is throttling, not debouncing. lodash.throttle:
Creates a throttled function that only invokes
funcat most once per everywaitmilliseconds.
Creates a debounced function that delays invoking
funcuntil afterwaitmilliseconds have elapsed since the last time the debounced function was invoked.
And while on the topic, a (real) @debounce would be a great addition.
Agreed! It's a difficult thing to change now that its there, but what about adding an option and making the default an actual debounce? @pl12133 called this out to me a couple weeks ago, I'd forgotten about the name mixup.
The sooner you do it the better if you see a future for this package. We have enough misnamed "oh-it's-too-late-now" stuff in the web dev industry as it is :)
Anyway, decided to use https://www.npmjs.com/package/core-decorators instead for the project I'm working on since I do need both. The implementations are quite similar as well.
Oh nice, I hadn't seen that module! Looks good.
I'd love to have a real debounce option here somehow. Separating throttle and debounce would make a lot of sense. Also core-decorators seems to have deprecated their debounce and throttle decorators for some reason