UNPKG

async-pond

Version:

一个使用 promise 来解决并发异步控制的方案,无任何依赖

33 lines (32 loc) 901 B
interface IPoolControlers { iteratorFn: Function; param: any; flag: symbol; } interface IOptions { isReTry?: boolean; retryNum?: number; afterInitSingleAsync?: (runingAsyncPool: Promise<any>[]) => any; } export default class AsyncPoolPro { poolLimit: number; private promisePool; private poolControlers; private poolIndex; private whileControl; private promiseGroups; private options; constructor(poolLimit?: number, options?: IOptions); push(poolParams: any, iteratorFn: Function): Promise<any[]>; /** * 延迟生成Promise异步 * @param poolControlers 异步请求的参数 */ generatorPromise(poolControlers?: IPoolControlers[]): Promise<any> | undefined; /** * 并发控制逻辑 * @param {boolean} isInit 是否初始化控制? */ asyncPool(isInit: boolean): Promise<void>; } export {};