Git Product home page Git Product logo

Comments (10)

laszlopandy avatar laszlopandy commented on August 21, 2024

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.

thenikso avatar thenikso commented on August 21, 2024

throttle is a very common name for that functionality in many reactive libraries though

from bacon.js.

raimohanska avatar raimohanska commented on August 21, 2024

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.

raimohanska avatar raimohanska commented on August 21, 2024

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.

raimohanska avatar raimohanska commented on August 21, 2024

Implementation of limitThroughput at https://github.com/raimohanska/bacon.js/tree/limitThroughput

from bacon.js.

raimohanska avatar raimohanska commented on August 21, 2024

Will not push limitThroughput to master before someone asks for it. => Closing for now.

from bacon.js.

KyleAMathews avatar KyleAMathews commented on August 21, 2024

+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.

raimohanska avatar raimohanska commented on August 21, 2024

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.

KyleAMathews avatar KyleAMathews commented on August 21, 2024

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.

raimohanska avatar raimohanska commented on August 21, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.