Open
Conversation
elyobo
approved these changes
Mar 24, 2021
Member
elyobo
left a comment
There was a problem hiding this comment.
Seems like a cleaner API. It's still possible to opt out of retries, just have your curve throw if you want to stop retrying.
Breaking change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
WIP
@elyobo, the below signature is my suggested simplification of the API that we've incremented toward.
fnis wrapped as per the logic given incurve. Curve is expected to be a callback which will be called at each failed iteration witherr(the error thrown by the wrapped function) andcountwhich is the count of total attempts toresolve- it should either throw (should no more retries be required) or return an integer dictating the number of milliseconds to sleep before re-attempting resolution.So, for example, the wrapped function below would retry a maximum of 12 times with exponential (base 2) back off.
We can overload the sig so that it can instead take an object containing options as a second argument, although this wouldn't help much with determining which errors we don't want to retry on (unless the generated function was wrapped again).
What do you think?