ejmorgan-retry
A simple and lightweight package to retry various execution contexts.
Installation
npm install ejmorgan-retry
// or
yarn add ejmorgan-retry
Usage
Basic
const { Retry } = require("ejmorgan-retry");
const retry = new Retry(function(resolve, reject, retry) {
if (retry.attempts < 5)
resolve(retry.reschedule(2000))
else
reject("oof!");
})
retry.schedule()
.then((ok) => console.log(ok))
.catch((err) => console.error(err));
HTTP Request
const https = require("https");
const { Retry } = require("ejmorgan-retry");
const retry = new Retry((resolve, reject, retry) => {
const req = https.request({}, (res) => {
let data = "";
res.on("data",(d) = > data += d);
res.on("error", (e) => reject(e));
res.on("end", () => {
if (res.statusCode >= 200 && res.statusCode < 400) {
resolve(res);
}
else if (retry.attempts < 5) {
resolve(retry.reschedule(2000));
}
else {
reject("ERR");
}
});
});
req.end();
});
retry.schedule()
.then((res) => console.log(res))
.catch((err) => console.error(err));