decko icon indicating copy to clipboard operation
decko copied to clipboard

@debounce is named improperly — should be @throttle

Open ivancuric opened this issue 8 years ago • 4 comments
trafficstars

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 func at most once per every wait milliseconds.

lodash.debounce:

Creates a debounced function that delays invoking func until after wait milliseconds have elapsed since the last time the debounced function was invoked.

And while on the topic, a (real) @debounce would be a great addition.

ivancuric avatar Mar 29 '17 10:03 ivancuric

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.

developit avatar Mar 29 '17 14:03 developit

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.

ivancuric avatar Mar 29 '17 16:03 ivancuric

Oh nice, I hadn't seen that module! Looks good.

developit avatar Mar 29 '17 18:03 developit

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

Connorelsea avatar Jul 24 '17 05:07 Connorelsea