If you simply cache the Promise it will always resolve with an error after an error occurs. On the other hand, retrying within a Promise will leave the Promise unresolved until the error is resolved, blocking further processing.
So this library works like this: If an error occurs, resolve it as an error, automatically perform retry processing (unless you disable it explicitly), and return the retry result when referencing the cache.
npm install --save promise-cache-retry
import { PromiseCache } from 'promise-cache-retry';
const cache = new PromiseCache({
promiseGenerator: async () => {
const res = await fetchData(ENDPOINT);
return res.data;
},
options: {
maxRetries: 2,
minRetryInterval: 3000,
},
});
export const handler = async () => {
const value = await cache.get();
}
PRs accepted.
Small note: If editing the Readme, please conform to the standard-readme specification.