axios
基于 promise
用于 浏览器 和 node.js 的 http 客户端;
而 axios-extra
扩展了 axios
让它拥有有并发控制以及重试的能力;
若是你是一正在使用 axios
只要修改一行代码当即拥有node
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
属性便可;ios
const axios = require('axios-extra'); //本次get请求若不成功,将重试3次 axios.get('http://xxx',{ queueOptions: {retry: 3} })
axios
的发送请求方法都可使用:git
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
最会在队列头部插入请求, 实现当即重试github
更多 queueOptions 配制可参看 这里