For the complete documentation index, see llms.txt. This page is also available as Markdown.

Promise Repeater

Main

The promise repeater plugin allows you to "try" and repeat promises until they are resolved. It also allows you establish a margin of milliseconds between each try.

Methods

Method

Description

maxAttempts

Sets limit of attempts for retrying promise

unlimitedAttempts

Sets a infinite limit of attempts

delay

Sets a delay (in milliseconds) for each retry

start | attempt

Starts the process of resolving the promise and retrying until it is resolved

Usage

import { PromiseRepeater } from "https://deno.land/x/mandarinets/pluggins/promiseRepeater.ts";

let i = 0;
const promiseFunction = async () => {
    i++;
    console.log(`Attempt ${i}`);
    if(i < 3) throw new Error();
    console.log("Resolved");
    return true;
}

const val1 = await new PromiseRepeater(promiseFunction).maxAttempts(4).start();
i = 0;
const val2 = await new PromiseRepeater(promiseFunction).maxAttempts(4).delay(2000).start();
i = 0;
const val3 =  await new PromiseRepeater(promiseFunction).unlimitedAttempts().delay(1000).start();
i = 0;
const val4 = await new PromiseRepeater(promiseFunction).maxAttempts(1).start();

console.log(val1);
console.log(val2);
console.log(val3);
console.log(val4);

Result:

Last updated