- tail-queue
- Installation
- Demo
- Documentation
- Classes
- tail-queue
- Interfaces
Install with npm:
$ npm install --save tail-queue
Install with yarn:
$ yarn add tail-queue
Globals / default
Promise queue with concurrency control.
Name | Type | Default |
---|---|---|
QueueType |
Queue<RunFunction, EnqueueOptionsType> | PriorityQueue |
EnqueueOptionsType |
QueueAddOptions | DefaultAddOptions |
-
EventEmitter
↳ default
- add
- addAll
- addListener
- clear
- emit
- eventNames
- getMaxListeners
- listenerCount
- listeners
- off
- on
- onEmpty
- onIdle
- once
- pause
- prependListener
- prependOnceListener
- rawListeners
- removeAllListeners
- removeListener
- setMaxListeners
- sizeBy
- start
- listenerCount
+ new default(options?
: Options<QueueType, EnqueueOptionsType>): default
Defined in src/index.ts:37
Name | Type |
---|---|
options? |
Options<QueueType, EnqueueOptionsType> |
Returns: default
▪ Static
defaultMaxListeners: number
Inherited from default.defaultMaxListeners
Defined in node_modules/@types/events/index.d.ts:11
• get concurrency(): number
Defined in src/index.ts:215
Returns: number
• set concurrency(newConcurrency
: number): void
Defined in src/index.ts:219
Name | Type |
---|---|
newConcurrency |
number |
Returns: void
• get isPaused(): boolean
Defined in src/index.ts:395
Whether the queue is currently paused.
Returns: boolean
• get pending(): number
Defined in src/index.ts:388
Number of pending promises.
Returns: number
• get size(): number
Defined in src/index.ts:372
Size of the queue.
Returns: number
• get timeout(): number | undefined
Defined in src/index.ts:399
Set the timeout for future operations.
Returns: number | undefined
• set timeout(milliseconds
: number | undefined): void
Defined in src/index.ts:406
Set the timeout for future operations.
Name | Type |
---|---|
milliseconds |
number | undefined |
Returns: void
▸ add<TaskResultType>(fn
: Task<TaskResultType>, options
: Partial<EnqueueOptionsType>): Promise<TaskResultType>
Defined in src/index.ts:234
Adds a sync or async task to the queue. Always returns a promise.
Name |
---|
TaskResultType |
Name | Type | Default value |
---|---|---|
fn |
Task<TaskResultType> | - |
options |
Partial<EnqueueOptionsType> | {} |
Returns: Promise<TaskResultType>
▸ addAll<TaskResultsType>(functions
: ReadonlyArray<Task<TaskResultsType>>, options?
: EnqueueOptionsType): Promise<TaskResultsType[]>
Defined in src/index.ts:285
Same as .add()
, but accepts an array of sync or async functions.
Name |
---|
TaskResultsType |
Name | Type |
---|---|
functions |
ReadonlyArray<Task<TaskResultsType>> |
options? |
EnqueueOptionsType |
Returns: Promise<TaskResultsType[]>
A promise that resolves when all functions are resolved.
▸ addListener(type
: string | number, listener
: Listener): this
Inherited from default.addListener
Defined in node_modules/@types/events/index.d.ts:17
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ clear(): void
Defined in src/index.ts:323
Clear the queue.
Returns: void
▸ emit(type
: string | number, ...args
: any[]): boolean
Defined in node_modules/@types/events/index.d.ts:16
Name | Type |
---|---|
type |
string | number |
...args |
any[] |
Returns: boolean
▸ eventNames(): Array<string | number>
Inherited from default.eventNames
Defined in node_modules/@types/events/index.d.ts:13
Returns: Array<string | number>
▸ getMaxListeners(): number
Inherited from default.getMaxListeners
Defined in node_modules/@types/events/index.d.ts:15
Returns: number
▸ listenerCount(type
: string | number): number
Inherited from default.listenerCount
Defined in node_modules/@types/events/index.d.ts:26
Name | Type |
---|---|
type |
string | number |
Returns: number
▸ listeners(type
: string | number): Listener[]
Inherited from default.listeners
Defined in node_modules/@types/events/index.d.ts:25
Name | Type |
---|---|
type |
string | number |
Returns: Listener[]
▸ off(type
: string | number, listener
: Listener): this
Defined in node_modules/@types/events/index.d.ts:23
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ on(type
: string | number, listener
: Listener): this
Defined in node_modules/@types/events/index.d.ts:18
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ onEmpty(): Promise<void>
Defined in src/index.ts:332
Can be called multiple times. Useful if you for example add additional items at a later time.
Returns: Promise<void>
A promise that settles when the queue becomes empty.
▸ onIdle(): Promise<void>
Defined in src/index.ts:353
The difference with .onEmpty
is that .onIdle
guarantees that all work from the queue has finished. .onEmpty
merely signals that the queue is empty, but it could mean that some promises haven't completed yet.
Returns: Promise<void>
A promise that settles when the queue becomes empty, and all promises have completed; queue.size === 0 && queue.pending === 0
.
▸ once(type
: string | number, listener
: Listener): this
Defined in node_modules/@types/events/index.d.ts:19
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ pause(): void
Defined in src/index.ts:316
Put queue execution on hold.
Returns: void
▸ prependListener(type
: string | number, listener
: Listener): this
Inherited from default.prependListener
Defined in node_modules/@types/events/index.d.ts:20
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ prependOnceListener(type
: string | number, listener
: Listener): this
Inherited from default.prependOnceListener
Defined in node_modules/@types/events/index.d.ts:21
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ rawListeners(type
: string | number): Listener[]
Inherited from default.rawListeners
Defined in node_modules/@types/events/index.d.ts:27
Name | Type |
---|---|
type |
string | number |
Returns: Listener[]
▸ removeAllListeners(type?
: string | number): this
Inherited from default.removeAllListeners
Defined in node_modules/@types/events/index.d.ts:24
Name | Type |
---|---|
type? |
string | number |
Returns: this
▸ removeListener(type
: string | number, listener
: Listener): this
Inherited from default.removeListener
Defined in node_modules/@types/events/index.d.ts:22
Name | Type |
---|---|
type |
string | number |
listener |
Listener |
Returns: this
▸ setMaxListeners(n
: number): this
Inherited from default.setMaxListeners
Defined in node_modules/@types/events/index.d.ts:14
Name | Type |
---|---|
n |
number |
Returns: this
▸ sizeBy(options
: Readonly<Partial<EnqueueOptionsType>>): number
Defined in src/index.ts:381
Size of the queue, filtered by the given options.
For example, this can be used to find the number of items remaining in the queue with a specific priority level.
Name | Type |
---|---|
options |
Readonly<Partial<EnqueueOptionsType>> |
Returns: number
▸ start(): this
Defined in src/index.ts:301
Start (or resume) executing enqueued tasks within concurrency limit. No need to call this if queue is not paused (via options.autoStart = false
or by .pause()
method.)
Returns: this
▸ Static
listenerCount(emitter
: EventEmitter, type
: string | number): number
Inherited from default.listenerCount
Defined in node_modules/@types/events/index.d.ts:10
Name | Type |
---|---|
emitter |
EventEmitter |
type |
string | number |
Returns: number
Globals / PriorityQueue
- PriorityQueue
• get size(): number
Defined in src/priority-queue.ts:60
Returns: number
▸ dequeue(): RunFunction | undefined
Defined in src/priority-queue.ts:45
Returns: RunFunction | undefined
▸ enqueue(run
: RunFunction, options?
: Partial<PriorityQueueOptions>): void
Defined in src/priority-queue.ts:13
Name | Type |
---|---|
run |
RunFunction |
options? |
Partial<PriorityQueueOptions> |
Returns: void
▸ filter(options
: Readonly<Partial<PriorityQueueOptions>>): RunFunction[]
Defined in src/priority-queue.ts:49
Name | Type |
---|---|
options |
Readonly<Partial<PriorityQueueOptions>> |
Returns: RunFunction[]
Globals
Ƭ ResolveFunction<T>: (value?: T | PromiseLike<T>) => void
Defined in src/types.ts:9
Name | Default |
---|---|
T |
void |
Ƭ RunFunction: () => Promise<unknown>
Defined in src/types.ts:8
Ƭ Task<TaskResultType>: () => PromiseLike<TaskResultType> | () => TaskResultType
Defined in src/types.ts:10
Name |
---|
TaskResultType |
▸ PromiseFinally<T>(promise
: T, fallback
: any): Promise<T>
Defined in src/utils.ts:1
Name | Default |
---|---|
T |
any |
Name | Type |
---|---|
promise |
T |
fallback |
any |
Returns: Promise<T>
▸ PromiseTimeout(promise
: any, milliseconds
: number, fallback
: any): Promise<any>
Defined in src/utils.ts:18
Name | Type |
---|---|
promise |
any |
milliseconds |
number |
fallback |
any |
Returns: Promise<any>
▸ Const
empty(): void
Defined in src/utils.ts:83
Returns: void
▸ lowerBound<T>(array
: readonly T[], value
: T, comparator
: (a: T,b: T) => number): number
Defined in src/utils.ts:60
Name |
---|
T |
Name | Type |
---|---|
array |
readonly T[] |
value |
T |
comparator |
(a: T,b: T) => number |
Returns: number
Globals / DefaultAddOptions
-
↳ DefaultAddOptions
▪ [key: string]: unknown
• Optional
Readonly
priority: undefined | number
Defined in src/options.ts:72
Priority of operation. Operations with greater priority will be scheduled first.
default
0
Globals / Options
Name | Type |
---|---|
QueueType |
Queue<RunFunction, QueueOptions> |
QueueOptions |
QueueAddOptions |
- Options
- autoStart
- carryoverConcurrencyCount
- concurrency
- interval
- intervalCap
- queueClass
- throwOnTimeout
- timeout
• Optional
Readonly
autoStart: undefined | false | true
Defined in src/options.ts:21
Whether queue tasks within concurrency limit, are auto-executed as soon as they're added.
default
true
• Optional
Readonly
carryoverConcurrencyCount: undefined | false | true
Defined in src/options.ts:51
Whether the task must finish in the given interval or will be carried over into the next interval count.
default
false
• Optional
Readonly
concurrency: undefined | number
Defined in src/options.ts:14
Concurrency limit.
Minimum: 1
.
default
Infinity
• Optional
Readonly
interval: undefined | number
Defined in src/options.ts:44
The length of time in milliseconds before the interval count resets. Must be finite.
Minimum: 0
.
default
0
• Optional
Readonly
intervalCap: undefined | number
Defined in src/options.ts:35
The max number of runs in the given interval of time.
Minimum: 1
.
default
Infinity
• Optional
Readonly
queueClass: undefined | {}
Defined in src/options.ts:26
Class with a enqueue
and dequeue
method, and a size
getter. See the Custom QueueClass section.
• Optional
throwOnTimeout: undefined | false | true
Defined in src/options.ts:63
Whether or not a timeout is considered an exception.
default
false
• Optional
timeout: undefined | number
Defined in src/options.ts:56
Per-operation timeout in milliseconds. Operations fulfill once timeout
elapses if they haven't already.
Globals / PriorityQueueOptions
-
↳ PriorityQueueOptions
▪ [key: string]: unknown
• Optional
priority: undefined | number
Defined in src/types.ts:19
Globals / PriorityQueueRunOptions
-
↳ PriorityQueueRunOptions
▪ [key: string]: unknown
• Optional
priority: undefined | number
Inherited from PriorityQueueOptions.priority
Defined in src/types.ts:19
• run: RunFunction
Defined in src/types.ts:23
Globals / Queue
Name |
---|
Element |
Options |
- Queue
• dequeue: () => Element | undefined
Defined in src/types.ts:4
• enqueue: (run: Element,options?: Partial<Options>) => void
Defined in src/types.ts:5
• filter: (options: Partial<Options>) => Element[]
Defined in src/types.ts:3
• size: number
Defined in src/types.ts:2
Globals / QueueAddOptions
-
QueueAddOptions
▪ [key: string]: unknown