界说 retryAdapterEnhancer 函数
为了让用户能够更灵活地控制请求重试的功能,我们定义了一个 retryAdapterEnhancer函数,该函数支持两个参数: adapter:预增强的 Axios 适配器对象; options:缓存配置对象,该对象支持 2 个属性,分别用于配置不同的功能: times:全局设置请求重试的次数; delay:全局设置请求延迟的时间,单位是 ms。 了解完 retryAdapterEnhancer 函数的参数之后,我们来看一下该函数的具体实现: function retryAdapterEnhancer(adapter, options) { const { times = 0, delay = 300 } = options;
return async (config) => { const { retryTimes = times, retryDelay = delay } = config; let __retryCount = 0; const request = async () => { try { return await adapter(config); } catch (err) { // 判断是否进行重试 if (!retryTimes || __retryCount >= retryTimes) { return Promise.reject(err); } __retryCount++; // 增加重试次数 // 延时处理 const delay = new Promise((resolve) => { setTimeout(() => { resolve(); }, retryDelay); }); // 重新发起请求 return delay.then(() => { return request(); }); } }; return request(); }; (编辑:好传媒网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |