axios-retry

2020-02-07 16:13 更新
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'
    });

// 請求之間用指數(shù)后退形式的重試延遲
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被設(shè)置, 這個插件將請求超時解釋為全局值, 不是針對每一個請求,而是全局的設(shè)置。


配置

NameTypeDefaultDescription
retriesNumber3失敗前重試的次數(shù)。
retryConditionFunctionisNetworkOrIdempotentRequestError如果應(yīng)該重試請求,則進一步控制的回調(diào)。默認情況下,如果是冪等請求的網(wǎng)絡(luò)錯誤或5xx錯誤,它會重試(GET, HEAD, OPTIONS, PUT or DELETE).
shouldResetTimeoutBooleanfalse定義是否應(yīng)在重試之間重置超時。
retryDelayFunctionfunction noDelay() { return 0; }控制重試請求之間的延遲。默認情況下,重試之間沒有延遲。另一個選項是exponentialDelay (Exponential Backoff). 這個函數(shù)傳遞retryCount 和error.


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號