1.0.5 • Published 4 months ago

e-async-control v1.0.5

Weekly downloads
-
License
MIT
Repository
-
Last release
4 months ago

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>;

1.0.5

4 months ago

1.0.4

7 months ago

1.0.3

7 months ago

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago