1.0.0 ā€¢ Published 2 years ago

promise-queue-tiny v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

promise-queue-tiny

šŸš€šŸš€šŸš€ this is a promise-queue util!

install

npm i promise-queue-tiny

useage

import PromiseQueue from 'promise-queue-tiny'

const PromiseFactoryArray = Array.from({length: 10})
  .map((i, index) => {
  return () => new Promise(res => {
    setTimeout(() => {
      const v = {index, v: Math.random()}
      res(v)
    }, Math.random() * 2000 + 1000)
  })
})

const queue = new PromiseQueue(PromiseFactoryArray, 4)
queue.onProgress = (p) => console.log(p)
queue.start().then(v => console.log(v))

api

export declare type AbortFn = (...arg: unknown[]) => unknown;
export declare type PromiseFactory = () => Promise<unknown> | [Promise<unknown>, AbortFn | undefined];
export declare type Pending = {
    readonly promise: Promise<unknown>;
    readonly abort?: AbortFn;
};
export declare type ErrorPolicy = 'abort' | 'ignore';
export default class TinyPromiseQueue {
    onProgress?: (p: {
        done: number;
        total: number;
    }) => unknown;
    constructor(factoryArr?: PromiseFactory[], cap?: number, errorPolicy?: ErrorPolicy);
    readonly abort: () => void;
    readonly start: () => Promise<unknown>;
}