0.4.5 • Published 4 years ago
core-queue v0.4.5
core-queue
Simple, zero dependency, promise-based queue.
Package is under development. API might change.
Features
- Promise based queue.
- Concurrency.
- Build-in flow control methods.
Installation
Via npm:
npm install core-queueVia yarn:
yarn add core-queueLoading the module
import { CoreQueue, CoreQueueOptions } from "core-queue";Common usage
Create options
const options: CoreQueueOptions = {
maxConcurrency: 1,
maxTasks: 10,
autostart: true
};Create queue
const coreQueue: CoreQueue = new CoreQueue(options);Add async task and handle result with promises
coreQueue
.enqueue(() => someTask())
.then(result => {})
.catch(error => {});Add async task and await result
try {
await coreQueue.enqueue(() => someTask());
}catch(error){
// handle error
}Await until every task is settled (resolved or rejected)
await coreQueue.done();API
CoreQueue(options)
Returns new CoreQueue instance.
Getters
size number
- Returns sum of tasks awaiting in queue and tasks which are currently in progress.
pendingSize number
- Returns number of tasks in queue.
inProgressSize number
- Returns number of tasks which currently beign executed.
isEmpty boolean
- Returns
trueif the number of awaiting tasks is zero.
isFull boolean
- Returns
trueif the options limit is exceeded. - Is calculated as pedningTasks + awaitingTasks.
peek
- Returns first element without removing it.
- Returns
nullif queue is empty.
Methods
start()
- Start task execution (Have to be called if
autostartis set tofalse). - Could be called after
stop()
stop()
- Stop task execution.
- Task that was already started will settle.
clear()
- Removes all pending tasks.
done() promise
- Resolves after all tasks are settled and queue is empty.
enqueue(()=> {})
- Add new async task into queue.
- Throws error if maxTasks is exceeded.
CoreQueueOptions
maxTasks number
- Maximum of pending and idle tasks in queue.
maxConcurrency number
- Maximum of concurrently executed tasks.
autostart boolean
- Specify if tasks should be resolved as soon as possible.
- If set to
false, thenstart()have to be called.