# async-control **Repository Path**: liu-zhengfeng-yyy/async-control ## Basic Information - **Project Name**: async-control - **Description**: 异步并发控制(可用于前端大量并发异步请求控制) - **Primary Language**: TypeScript - **License**: Not specified - **Default Branch**: master - **Homepage**: https://www.npmjs.com/package/e-async-control - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-09-12 - **Last Updated**: 2023-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nodejs, vite, JavaScript, TypeScript ## README # e-async-control ### 介绍 >异步并发控制 (可用于大量异步网络请求最大并发数控制) ### 技术栈 >typescript + vite(build) ### 安装教程 ```shell # npm npm install e-async-control # yarn yarn add e-async-control # pnpm pnpm add e-async-control ``` ### 使用说明 >使用示例 ```typescript 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 > ```typescript 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>; ```