0.0.3 • Published 6 years ago

queue-maplimit v0.0.3

Weekly downloads
13
License
MIT
Repository
github
Last release
6 years ago

queueMapLimit

a queue concurrency limit base on Promise.

install

npm i queue-maplimit --save
//or
yarn add queue-maplimit

usage

const QueueMapLimit = require("queue-maplimit");
const queue = new QueueMapLimit(limit);
queue.add(arr, iteratee); //  will return a Promise

Parameters:

NameTypeDescription
arrArrayA collection to iterate over.
limitnumberThe maximum number of async operations at a time.
iterateeAsyncFunctionAn async function to apply to each item in arr. The iteratee should complete with the transformed item.
returnPromisePromise.then(result => {});

example

const QueueMapLimit = require("queue-maplimit");
const queue = new QueueMapLimit(5);
queue
  .add(
    arr,
    value =>
      new Promise((resolve, reject) => {
        console.log("begin", value);
        setTimeout(() => {
          console.log("end", value);
          random(0, 10) > 9 ? reject(undefined) : resolve(value);
        }, random(1, 50));
      })
  )
  .then(result => {
    console.log("task done ", result);
  })
  .catch(err => {
    console.error("task has error ", arr);
  });

test

test.js