Asynchronous (asyn-await/promise) function queue.
npm install @ex1st/tiny-queueAsynchronous (asyn-await/promise) function queue.
javascript
import { Queue } from '@ex1st/tiny-queue';const queue = new Queue(async function (task) {
const r = await task;
return r;
}, { timeout: 2000 });
const result = [];
// add task to the queue
queue.push(new Promise(resolve => {
setTimeout(() => {
resolve(1);
}, 1000);
}));
// add task to the queue
queue.push(new Promise(resolve => {
setTimeout(() => {
resolve(2);
}, 500);
}));
// add task to the queue
queue.push(new Promise(resolve => {
setTimeout(() => {
resolve(3);
}, 100);
}), new Promise(resolve => {
setTimeout(() => {
resolve(4);
}, 50);
}));
// add task to the queue
queue.push(new Promise(resolve => {
setTimeout(() => {
resolve(5);
}, 2500);
}));
queue.on('done', function (res, task) {
result.push(res);
});
queue.on('timeout', function (task) {
console.log('task timed out:', task);
});
console.log(queue.running()); // true
console.log(queue.length()); // 4
queue.on('drain', function () {
console.log(result); // [1,2,3,4]
});
`Install
npm install @ex1st/tiny-queueAPI
$3
* worker function
* timeout integer, is optional
* filter function, is optionalInstance methods
$3
add new task(s) to the queue.$3
a function that pauses the processing of tasks.$3
a function that resumes the processing of the queued tasks.$3
a function that empties remaining tasks from the queue$3
a function returning execution state of the queue$3
a function returning the queue's size$3
a function set a custom filterEvents
$3
When a task is done.$3
When a task throws an error.$3
When timeout params milliseconds have elapsed.$3
When a last task from a queue has returned from a worker$3
When a last task from a queue is given to a worker`