Comments (10)
I just noticed in the docs that there is a delay() method which is very similar.
Perhaps throttle() should be called delayUntilStable(), to be consistent with the naming.
from bacon.js.
throttle
is a very common name for that functionality in many reactive libraries though
from bacon.js.
I'm not really sure which one would be the "correct" implementation of throttle. Neither would I like to rename a method that's probably used by many people already. We may add another method for laszlo's case which I think might actually be a better "throttle" for many cases.
from bacon.js.
Update:
Been thinking about whether to rename throttle
but I feel that what ever the new name would be, you'd still have to read the docs to get the exact behavior. So renaming would not improve things too much, and it would definitely break a lot of applications. So, won't rename. Sorry.
But yes, we can add more output limiting methods for different needs.
I'm considering the addition of a limitThroughput(x)
method that would limit the throughput to 1 event / x milliseconds. This would not delay the first event but would just ensure that there will be at least x milliseconds of silence between events. Would this be useful?
from bacon.js.
Implementation of limitThroughput at https://github.com/raimohanska/bacon.js/tree/limitThroughput
from bacon.js.
Will not push limitThroughput to master before someone asks for it. => Closing for now.
from bacon.js.
+1 for limitThroughput. I just started using bacon.js yesterday and was disappointed this option didn't exist. One option, however, is to just copy Underscore's approach and for debounce, just add a parameter to say call the function immediately.
from bacon.js.
Currently there's throttle
and debounce
that work as in JQuery and Underscore. There's no option for outputing the first event immediately as in https://github.com/raimohanska/bacon.js/tree/limitThroughput
Do you really need that option, or would either throttle or debounce work for you?
from bacon.js.
Check out the third parameter on Underscore's debounce to make the function firing happen at the beginning rather than end of the interval. I've used this several times with Underscore and think the same functionality would be useful in bacon.js.
http://documentcloud.github.com/underscore/#debounce
from bacon.js.
It would definitely make sense to implement this extra parameter. Do you feel like doing implementing this and submitting a PR?
from bacon.js.
Related Issues (20)
- Bacon.when doesn't respect the syncronization pattern, unless I subscribe to the source stream
- Shorthand for filter map HOT 4
- TypeScript import doesn't work HOT 1
- examples are not working HOT 3
- Property current value handling in case of re-activation HOT 3
- Bacon.js 4.0 HOT 14
- Converge ES6 module imports for browser and Node.js HOT 1
- Remove dist directory from git HOT 1
- Event type guards HOT 7
- Internet Explorer problem as of version 3.0.17 (minor upgrade) HOT 3
- Travis needs to be replaced
- flatMapLatest spawns next substream before the previous is disposed HOT 1
- 'Property<string>' is not assignable to type 'Property<string | null>' HOT 3
- Cannot use JS objects which throw on undefined property access
- .withLatestFrom(later(1, "foo"), …) depends on JS runtime HOT 1
- examples.html is not working - ReferenceError: Bacon is not defined HOT 1
- ObjectTemplate type issue with Date objects HOT 2
- Errors not captured in methods? HOT 4
- Bacon.try missing in docs HOT 2
- Feature Request: Event Stream from Mutation Observer HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bacon.js.