# limited-concurrent-task-queue

> Queue similar to promise-all and promise-all settled with concurrency control

Latest version **1.0.8** (published 2021-06-09) · ISC license · 0 weekly downloads

## Install

```sh
npm install limited-concurrent-task-queue
pnpm add limited-concurrent-task-queue
yarn add limited-concurrent-task-queue
bun add limited-concurrent-task-queue
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.8 |
| Published | 2021-06-09 |
| First published | 2021-06-04 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 4.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Nitin |
| Maintainers | nitin.cm |

## Links

- npm: https://www.npmjs.com/package/limited-concurrent-task-queue
- npm.io page: https://npm.io/package/limited-concurrent-task-queue

## Recent versions

- 1.0.8 (latest) — 2021-06-09
- 1.0.7 — 2021-06-08
- 1.0.6 — 2021-06-08
- 1.0.5 — 2021-06-08
- 1.0.4 — 2021-06-04
- 1.0.3 — 2021-06-04
- 1.0.2 — 2021-06-04
- 1.0.1 — 2021-06-04
- 1.0.0 — 2021-06-04

## README

**Accepted params** - (concurrency, [taskArr]?)

**Usage** :

    const Queue = require('limited-concurrent-task-queue');
    
    async function usage1(){
    
    //Creates queue with concurrency of 1 function/task
    const queue = new Queue(1);
    
    //Add multiple functions/tasks to the queue
    for(let i=0;i<10;i++>){
    queue.add(exampleAsyncFunction);
    }
    
    // same as Promise.all()
    const result1 = await queue.all();
    
    //same as Promise.allSettled()
    const result2 = await queue.allSettled();
    
    //or listen to completion
    queue.on('done',(tasksResult)=>{
    console.log(tasksResult)
    });
    
    //listen to error
    queue.on('error',(err)=>{
    console.log(err)
    });
    
    //flush resources after usage (optional).
    queue.flush();
    
    }
    
      
    async function usage2(){
    //Array of tasks
    const taskArr = [];
     
    //Add multiple functions/tasks to be given to the queue
    for(let i=0;i<10;i++){
     taskArr.push(exampleAsyncFunction);
    }
    
    //create queue with maximum concurrency as 1 , with the tasks as second param
    const queue = new Queue(1,taskArr);
    
    // same as Promise.all()
    const result1 = await queue.all();
    
    //same as Promise.allSettled()
    const result2 = await queue.allSettled();
    
    //or listen to completion
    queue.on('done',(tasksResult)=>{
    console.log(tasksResult)
    });
    
    //listen to error
    queue.on('error',(err)=>{
    console.log(err)
     });
     
    //flush resources after usage (optional).
    queue.flush();
    
    }
    
    //example async function/task
    function exampleAsyncFunction(){
      let promise = new Promise((res,rej)=>{
      setTimeout(()=>{
       res('done')},1000)
       })
      return promise;
     }

---
_Source: https://npm.io/package/limited-concurrent-task-queue · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
