retry-promise-func
Version:
retry-promise-func是一个用于在失败时重试Promise调用的工具。
42 lines (37 loc) • 1.52 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.RetryPromiseFunc = {}));
})(this, (function (exports) { 'use strict';
/**
* 尝试多次调用一个函数,如果失败则重试,直到成功或超过重试次数
*
* @param fn 需要调用的函数,它应该返回一个Promise
* @param params 调用函数时使用的参数
* @param times 最大重试次数,默认为40次
* @param delay 每次重试之间的延迟时间(毫秒),默认为1600ms
*
* @returns 当函数调用成功时解决Promise,否则拒绝Promise
*/
const retry = async (fn, params = {}, times = 40, delay = 1600) => {
return new Promise((resolve, reject) => {
const tFn = function () {
fn(params)
.then(resolve)
.catch((e) => {
if (times-- > 0) {
console.log(`还有${times}次机会`);
setTimeout(tFn, delay);
}
else {
reject(e);
}
});
};
return tFn();
});
};
exports.retry = retry;
Object.defineProperty(exports, '__esModule', { value: true });
}));
//# sourceMappingURL=index.umd.js.map