aokai-request-queue
v1.1.21
Published
```ts import {createQueueRequest, defaultRejectTaskAuth, createRequestTask} from "aokai-request-queue";
Downloads
309
Readme
用法示例
创建队列
import {createQueueRequest, defaultRejectTaskAuth, createRequestTask} from "aokai-request-queue";
// 创建队列
const request = createQueueRequest(3, {
base_url: "http://localhost:3000",
})
// 注册任务
const getList = createRequestTask<void, {name: string}[]>({
url: "/list",
type: "get",
headers: {
// 添加headers
}
})
// 创建请求任务
const getListTask = getList()
request.add(getListTask).then(res => {
// 请求成功
}).catch(err => {
// 请求失败
})
使用默认插件
import {defaultRejectTaskAuth} from "aokai-request-queue"
// 使用插件(401后重新请求更新token)
request.use(defaultRejectTaskAuth({
url: "<重新请求地址>",
method: "<重新请求类型>",
params: () => {<重新请求参数>},
resolve: (res: any) => {
// 重新请求成功后的token
},
reject: (err: any) => {
// 重新请求失败
}
}))
如何创建插件
import {QueuePlugin, RequestTask, QueueHandler} from "aokai-request-queue";
import {AxiosError, AxiosInstance} from "axios";
// 创建插件
export function myPlugin(data?: any): QueuePlugin {
return {
/**
* 在任务执行前(可选)
* @param instance axios实例
* @param task 当前任务
* @param handler 队列处理器
*/
beforeRunTask(instance: AxiosInstance, task: RequestTask, handler: QueueHandler) {
},
/**
* 当任务执行失败(可选)
* @param request axios实例
* @param task 当前任务
* @param handler 队列处理器
* @param err 错误
*/
onReject(request: AxiosInstance, task: RequestTask, handler: QueueHandler, err: AxiosError) {
}
}
}
// 使用插件
request.use(myPlugin())