Skip to content

throttle behavior different from lodash: no trailing edge call #115

@jd20

Description

@jd20

When using throttle from lodash, if one or more calls are made during the wait period, a single call will be scheduled at the end of the wait period (i.e. the trailing edge). For example:

const throttled = throttle(() => console.log("called"), 5000)
for (var i=0; i < 3; i++) throttled()

You should see the throttled function called twice. However, with pydash, I'm only seeing a single call. If using to check for updates to a resource, you might miss the last update as a result. Here's the equivalent pydash example that I tried:

throttled = throttle(lambda: print("called"), 5000)
[throttled() for _ in range(3)]

Just taking a quick look at the source, pydash's debounce is lacking lodash's leading / trailing options. If those were present and implemented, throttle could just be rewritten as a call to debounce (which is how lodash's throttle is done).

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions