@onesy/utils
Version:
12 lines (11 loc) • 507 B
JavaScript
const asyncMethodRetry = function (method) {
let retries = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 4;
let timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 40;
return new Promise((resolve, reject) => {
method().then(resolve).catch(error => {
if (retries <= 1) return reject(error);
setTimeout(() => asyncMethodRetry(method, retries - 1, timeout).then(resolve, reject), timeout);
});
});
};
export default asyncMethodRetry;