A tiny interceptor for axios to retry request
npm i axios-retry-tiny --save
# or use yarn
yarn add axios-retry-tiny
const axios = require('axios');
const artiny = require('axios-retry-tiny');
artiny(axios);
(async () => {
try {
await axios({
url: 'https://google.com',
method: 'get',
retry: 5,
retryDelay: 100,
retryCode: ['ECONNABORTED', 'ETIMEDOUT', 500],
retryBeforeFn: (e) => {
console.log(`retry #${e.config.__retryCount}: ${e.config.url} : errCode: ${e.code || (e.response && e.response.status)}`);
}
});
} catch (error) {
console.log(error);
}
})();
option | type | default | desc |
---|---|---|---|
retry | number | 3 | times to retry |
retryDelay | number | 50 | ms time to delay retry |
retryCode | [number, string] | all error code | the match axios error code to retry |
retryBeforeFn | function(config) | the function before retry, can get axios config |
code | type | desc |
---|---|---|
'ECONNABORTED' | string | timeout |
'ETIMEDOUT' | string | timeout |
'ENOTFOUND' | string | server not found |
'ENETUNREACH' | string | not reach |
4** | number | client error |
5** | number | server error |
Happy to thinks