An open API service indexing awesome lists of open source software.

https://github.com/cnwhy/axios-extra

Support for maximum concurrent settings and retry
https://github.com/cnwhy/axios-extra

axios concurrent queue retry

Last synced: 3 months ago
JSON representation

Support for maximum concurrent settings and retry

Awesome Lists containing this project

README

          

# axios-extra

[![Coverage Status](https://coveralls.io/repos/github/cnwhy/axios-extra/badge.svg?branch=master)](https://coveralls.io/github/cnwhy/axios-extra?branch=master) [![github test](https://github.com/cnwhy/axios-extra/workflows/test/badge.svg?branch=master)](https://github.com/cnwhy/axios-extra/actions/workflows/test.yml)

通过 ES6 的`Proxy`对像, 让 [axios](https://github.com/axios/axios) 集成 [promise-queue-plus](https://github.com/cnwhy/promise-queue-plus), 使 `axios` 支持 **最大并发** 及 **出错重试** 的功能.

> 未添加任何 API, 你完全可以像使用 `axios` 那样使用 `axios-extra`;
> 由于使用了`Proxy`,请注意兼性.

## API

### axios.create(config)

现在可以通过设置 `maxConcurrent` 和 `queueOptions` 属性, 设置最大并发及重试次数.

```js
// axios 并发为10, 自动重试为0
const axios = require('axios-extra'); //默认最大并发 10, 重试 0;

// 创建一个 并发为1, 自动重试为3的 axios;
let axios1 = axios.create({
maxConcurrent:1, //并发为1
queueOptions: {
retry:3, //请求失败时,最多会重试3次
retryIsJump: true //是否立即重试, 否则将在请求队列尾部插入重试请求
}
});

let {stop, start, clear} = axios1.requestQueue; // 暴露内部的队列对像,可以使用 stop start clear 等 API;
```

> 更多 `queueOptions` 配制可参看[这里](https://github.com/cnwhy/promise-queue-plus#queuepushpromisefun-args-options)

### axios(config) 及 get|post|request|delete|head|options|put|patch

`config`参数可以为某一次的请求设置 `queueOptions`;

```js
axios.get('https://www.google.com',{
queueOptions : {
retry: 5
}
});
```

### `create(axios,maxConcurrent,queueOptions)` 扩展现有 `axios`

扩展项目中现有 `axios`,保证 `axios` 版本.

```js
const aec = require('axios-extra/create');
const axios = aec(requeir('axios'), 5, { retry: 5 });
```