axios-extra 支持併發及自動重試功能的 axios

axios 基於 promise 用於 瀏覽器 和 node.js 的 http 客戶端;
axios-extra 擴展了 axios 讓它擁有有併發控制以及重試的能力;
如果你是一正在使用 axios 只要修改一行代碼立即擁有

安裝

npm i axios-extra

使用

默認最大 10 併發, 0 重試;
//const axios = require('axios'); 
const axios = require('axios-extra'); //修改一行代碼 無感使用 axios-extra

設置併發數,及重試次數

方式一: 用 axios.defaults 修改默認配製

const axios = require('axios-extra');
axios.defaults.maxConcurrent = 1; //修改併發爲1
axios.defaults.queueOptions.retry = 2; //修改默認重試次數爲2

方式二: 用 axios.create(config) 創建新的 axios

const axios = require('axios-extra');
let axios1 = axios.create({
    maxConcurrent: 1, //併發爲1
    queueOptions: {
        retry: 3, //請求失敗時,最多會重試3次
        retryIsJump: true //是否立即重試, 否則將在請求隊列尾部插入重試請求
    }
});

方式三: 爲某一次特殊請求單獨設置重試

設置config參數的queueOptions屬性即可;

const axios = require('axios-extra');

//本次get請求若不成功,將重試3次
axios.get('http://xxx',{
    queueOptions: {retry: 3}
})

axios 的發送請求方法均可使用:

  • axios(config)
  • axios.request(config)
  • axios.get(url[, config])
  • axios.delete(url[, config])
  • axios.head(url[, config])
  • axios.options(url[, config])
  • axios.post(url[, data[, config]])
  • axios.put(url[, data[, config]])
  • axios.patch(url[, data[, config]])

補充

併發與重試都是基於隊列實現的, 默人重試是在隊列的最後重新插入請求.
retryIsJump 設置爲true最會在隊列頭部插入請求, 實現立即重試

更多 queueOptions 配製可參看這裏
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章