定义 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(); }; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |