codecamp

axios-retry

Axios 插件:重试失败的请求。


安装

npm install axios-retry


使用

// CommonJS
// const axiosRetry = require('axios-retry');

// ES6
import axiosRetry from 'axios-retry';

axiosRetry(axios, { retries: 3 });

// 第一次请求失败,第二次返回 'ok'
axios.get('http://example.com/test') 
    .then(result => {
        result.data; // 'ok'
    });

// 请求之间用指数后退形式的重试延迟
axiosRetry(axios, { retryDelay: axiosRetry.exponentialDelay});

// 自定义重试延迟
axiosRetry(axios, { retryDelay: (retryCount) => {
    return retryCount * 1000;
}});
// 自定义 axios 实例 const client = axios.create({ baseURL: 'http://example.com' }); axiosRetry(client, { retries: 3 }); // 第一次请求失败,第二次成功 client.get('/test')     .then(result => {         result.data; // 'ok'     }); // 允许 request-specific 配置 client     .get('/test', {         'axios-retry': {             retries: 0         }     })     .catch(error => {    // 第一次请求失败         error !== undefined     });

备注: 除非 shouldResetTimeout被设置, 这个插件将请求超时解释为全局值, 不是针对每一个请求,而是全局的设置。


配置

NameTypeDefaultDescription
retriesNumber3失败前重试的次数。
retryConditionFunctionisNetworkOrIdempotentRequestError如果应该重试请求,则进一步控制的回调。默认情况下,如果是幂等请求的网络错误或5xx错误,它会重试(GET, HEAD, OPTIONS, PUT or DELETE).
shouldResetTimeoutBooleanfalse定义是否应在重试之间重置超时。
retryDelayFunctionfunction noDelay() { return 0; }控制重试请求之间的延迟。默认情况下,重试之间没有延迟。另一个选项是exponentialDelay (Exponential Backoff). 这个函数传递retryCount 和error.


nuxtjs-axios
vue-axios-plugin
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

无标题目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }