• 并发执行多任务

    Type Parameters

    • T
    • E = Error | T

    Parameters

    • taskList: ITask<Promise<T>>[]
    • maxDegreeOfParalellism: number = 5

    Returns Promise<{ error: E; index: number; result: T }[]>

    async function concurrencyTest(paralelism = 5, total = 100) {
    const startTime = Date.now();
    const taskList = Array.from({ length: total })
    .fill(1)
    .map((_v, idx) => () => sleep(50, idx));

    console.log(tasklist);
    const result = await concurrency(taskList, paralelism);
    console.log('TimeCost:', Date.now() - startTime);

    return result;
    }

    await concurrencyTest(10);
    await concurrencyTest(100);