Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a new function
throttle.throttlebehaves likeall, but limits the number of concurrent requests by a passed parameter.One use case for throttles are if you are sending a bunch of api-requests but don't want to hit rate-limits or if you want to have more control over your systems resources.
This PR is WIP as I need to:
allBefore doing that I wanted to check if this is in scope of this repo anyway. If you feel like this is out of scope, I will create another package for that.
The implementation is somewhat naive. Instead of creating a queue and starting another promise whenever one item finishes, I made a chain, where every promise has a succeeding one. That has the downside that the concurrency-limit may not always be used ideally. It is guaranteed to be not overused, but situations may exist, where you are (for example) only using 8 instead of 10 promises at the same time.
Any feedback / ideas / help is very welcome!