1.0.5 • Published 4 months ago
e-async-control v1.0.5
e-async-control
介绍
异步并发控制 (可用于大量异步网络请求最大并发数控制)
技术栈
typescript + vite(build)
安装教程
# npm
npm install e-async-control
# yarn
yarn add e-async-control
# pnpm
pnpm add e-async-control
使用说明
使用示例
import {AsyncController} from "e-async-control";
import type {TaskList} from "e-async-control";
// 用于生成异步任务
function createTestTask(length = 10): TaskList {
const result = [];
for (let i = 0; i < length; i++) {
result.push(
() => new Promise((resolve, reject) => {
setTimeout(() => {
console.log(i);
if (i % 2 === 0) {
resolve(i)
} else {
reject(i)
}
}, Math.floor(Math.random() * (2000 - 1000 + 1)) + 1000)
}))
}
return result
}
// 实例化控制器
const controller = new AsyncController(createTestTask(10), 2);
// 开始执行任务
controller.startTask().then(result => {
console.log(result)
});
API
export declare class AsyncController { private readonly taskList; private readonly maxNum; constructor(taskList: TaskList, maxNum?: number); startTask(): TaskStartResult; }
export declare type Task = () => Promise;
export declare type TaskList = Task[];
export declare type TaskStartResult = Promise<Array>;