axios-retry

Axios plugin that intercepts failed requests and retries them whenever possible

  • 所有者: softonic/axios-retry
  • 平台:
  • 許可證: Other
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

axios-retry

Build Status

Axios plugin that intercepts failed requests and retries them whenever possible.

Installation

npm install axios-retry

Note

Not working with axios 0.19.0. For details see the bug. axios 0.19.1 has fixed this bug.

Usage

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

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

axiosRetry(axios, { retries: 3 });

axios.get('http://example.com/test') // The first request fails and the second returns 'ok'
  .then(result => {
    result.data; // 'ok'
  });

// Exponential back-off retry delay between requests
axiosRetry(axios, { retryDelay: axiosRetry.exponentialDelay});

// Custom retry delay
axiosRetry(axios, { retryDelay: (retryCount) => {
  return retryCount * 1000;
}});

// Works with custom axios instances
const client = axios.create({ baseURL: 'http://example.com' });
axiosRetry(client, { retries: 3 });

client.get('/test') // The first request fails and the second returns 'ok'
  .then(result => {
    result.data; // 'ok'
  });

// Allows request-specific configuration
client
  .get('/test', {
    'axios-retry': {
      retries: 0
    }
  })
  .catch(error => { // The first request fails
    error !== undefined
  });

Note: Unless shouldResetTimeout is set, the plugin interprets the request timeout as a global value, so it is not used for each retry but for the whole request lifecycle.

Options, Name, Type, Default, Description, ---, ---, ---, ---, retries, Number, 3, The number of times to retry before failing., retryCondition, Function, isNetworkOrIdempotentRequestError, A callback to further control if a request should be retried. By default, it retries if it is a network error or a 5xx error on an idempotent request (GET, HEAD, OPTIONS, PUT or DELETE)., shouldResetTimeout, Boolean, false, Defines if the timeout should be reset between retries, retryDelay, Function, function noDelay() { return 0; }, A callback to further control the delay between retried requests. By default there is no delay between retries. Another option is exponentialDelay (Exponential Backoff). The function is passed retryCount and error., ## Testing

Clone the repository and execute:

npm test

Contribute

  1. Fork it: git clone https://github.com/softonic/axios-retry.git
  2. Create your feature branch: git checkout -b feature/my-new-feature
  3. Commit your changes: git commit -am 'Added some feature'
  4. Check the build: npm run build
  5. Push to the branch: git push origin my-new-feature
  6. Submit a pull request :D

主要指標

概覽
名稱與所有者softonic/axios-retry
主編程語言TypeScript
編程語言JavaScript (語言數: 2)
平台
許可證Other
所有者活动
創建於2016-11-13 11:40:10
推送於2025-06-17 06:44:25
最后一次提交2025-06-17 07:44:25
發布數49
最新版本名稱v4.5.0 (發布於 2024-08-02 07:51:51)
第一版名稱v1.0.0 (發布於 2016-07-26 16:58:58)
用户参与
星數2k
關注者數27
派生數171
提交數271
已啟用問題?
問題數186
打開的問題數52
拉請求數75
打開的拉請求數2
關閉的拉請求數41
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?