easy-promise-queue
TypeScript icon, indicating that this package has built-in type declarations

0.5.7 • Public • Published

easy-promise-queue

Easy promise queue. Set a concurrency to execute promises in the queue.

NPM

Build Status codecov

English 中文

What is it used for

It's a concurrent queue which can pause.

When its concurrency is set as 1(by default), it's a FIFO queue.

You can put Promises into this queue. Only X promises can be executed concurrently as your configuration.

You can pause/resume this queue at any time. When the queue is paused, ongoing promises will keep running until done though.

Installation

$ npm install easy-promise-queue

Usage

How to import

commonJS:

const PromiseQueue = require("easy-promise-queue").default;

es2015:

import PromiseQueue from 'easy-promise-queue';

How to use

Add Promise thunk to run promise one by one:

let pq = new PromiseQueue({concurrency: 1});
 
pq.add(() => {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      console.log('task 1');
      resolve();
    }, 1000)
  });
});
 
pq.add(() => {
  return new Promise(function (resolve, reject) {
    setTimeout(function () {
      console.log('task 2');
      resolve();
    }, 1000)
  });
});
 
// syntax sugar:
pq.add([promiseThunk, promiseThunk, promiseThunk]);
// is equal to:
pq.add(promiseThunk).add(promiseThunk).add(promiseThunk);
// is equal to:
pq.add(promiseThunk);
pq.add(promiseThunk);
pq.add(promiseThunk);
 
//The added promises will be executed one by one.

How to pause the queue:

...
pq.pause();
// you can still add promise, however none of them will run.
 
pq.resume();
// Promises will resume to run.

License

MIT

/easy-promise-queue/

    Package Sidebar

    Install

    npm i easy-promise-queue

    Weekly Downloads

    847

    Version

    0.5.7

    License

    MIT

    Unpacked Size

    10.5 kB

    Total Files

    6

    Last publish

    Collaborators

    • hanswe