Type-safe retry utility with exponential backoff support. For a more in-depth overview on how this can be helpful, read the following blogpost: Retrying API Calls with Exponential Backoff in JavaScript.
npm install safe-retry --save
Have a look at the sample project for a demo,
but here is the minimal usage of the retry
function:
import { retry } from "safe-retry"; const result = await retry( () => { console.log("Something that returns a promise"); return Promise.reject(); }, { maxRetries: 4, onRetry: (retryAttempt, timeToWait) => { console.log( `Waiting for ${timeToWait}ms before next attempt. Attempt: ${retryAttempt}` ); }, } );
In the example above, if the promise given as the first argument fails,
it will be retries at least 4 times given the maxRetries
option,
and it will exponentially wait on every failed attempt, until it either
reaches its maximum retry limit or resolves.
Add Package
deno add jsr:@bpaulino/safe-retry
Import symbol
import * as safe_retry from "@bpaulino/safe-retry";
---- OR ----
Import directly with a jsr specifier
import * as safe_retry from "jsr:@bpaulino/safe-retry";
Add Package
npx jsr add @bpaulino/safe-retry
Import symbol
import * as safe_retry from "@bpaulino/safe-retry";
Add Package
yarn dlx jsr add @bpaulino/safe-retry
Import symbol
import * as safe_retry from "@bpaulino/safe-retry";
Add Package
pnpm dlx jsr add @bpaulino/safe-retry
Import symbol
import * as safe_retry from "@bpaulino/safe-retry";
Add Package
bunx jsr add @bpaulino/safe-retry
Import symbol
import * as safe_retry from "@bpaulino/safe-retry";