Retry async functions when error happens
Type: object
Type: number
(default: 2
)
Specifies the maximum amount of calls to the decorated function.
Type: Error[]
(default: [Error]
)
Specifies an array of errors for which the function should be retried. If the default option is used it will be retried for every error.
Type: number | ({ call: number; errors: Error[] }) => number
(default: 0)
Specifies amount of delay before each retry.
- If a
number
is given after each Error the subsequent invocation will be delayed with a fixed amount. - If a
function
returningnumber
is given it will invoke the function and delay the invocations by the result
as Babel legacy decorator
on request timeout using got
import got from 'got'
import withRetry from '@teneff/with-retry'
@withRetry({
maxCalls: 5,
errors: [got.TimeoutError],
})
export default function getFlakyServiceData() {
return await got("https://example.com");
}
using got
import got from "got";
import withRetry from "@teneff/with-retry";
function getFlakyServiceData() {
return await got("https://example.com");
}
export default withRetry({
maxCalls: 5,
errors: [got.TimeoutError],
})(getFlakyServiceData);
import got from "got";
import withRetry from '@teneff/with-retry/decorator'
class Example
@withRetry({
maxCalls: 5,
errors: [got.TimeoutError],
})
getFlakyServiceData() {
return await got("https://example.com");
}
}