Skip to content
/ p-retried Public

Retry a promise-returning or async function. Abstraction for exponential and custom retry strategies for failed operations

License

Notifications You must be signed in to change notification settings

khrj/p-retried

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Retry Icon

Promise Retried

Retry a promise-returning or async function. Deno port of sindresorhus's p-retry for node

build status language code size issues license version

View on deno.land




Abstraction for exponential and custom retry strategies for failed operations

Usage

import pRetried, {
    AbortError,
} from "https://deno.land/x/p_retried@1.0.7/mod.ts"

async function run() {
    const response = await fetch("https://sindresorhus.com/unicorn")

    // Abort retrying if the resource doesn't exist
    if (response.status === 404) {
        throw new AbortError(response.statusText)
    }

    return response.blob()
}

console.log(await pRetried(run, { retries: 5 }))

API

See https://doc.deno.land/https/deno.land/x/p_retried@1.0.7/mod.ts

Tip

You can pass arguments to the function being retried by wrapping it in an inline arrow function:

import pRetried from "https://deno.land/x/p_retried@1.0.7/mod.ts"

const run = async emoji => {
    // …
}

// Without arguments
await pRetried(run, {
    retries: 5,
})

// With arguments
await pRetried(() => run("🦄"), {
    retries: 5,
})

Supporters

  • HUGE thanks to @sindresorhus -- this repository is mostly his code, modified to work with Deno

Stargazers repo roster for @KhushrajRathod/pRetried

Forkers repo roster for @KhushrajRathod/pRetried

Related

License

  • Promise Retried is licensed under the MIT license.
  • Code is adapted from Sindre's p-retry for node (also under the MIT license)