Skip to content
master
Switch branches/tags
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 

NPM version Build Status Downloads

Promise.all() throttle - Prottle

  • Executes promise-returning functions in batches;
  • Once batch 1 is finished it's time for the next one;
  • Backend - Node 4.0+ supported;
  • Frontend - works with the env preset using babel. Use a Promise polyfill for IE.

Installation

$ npm install prottle --save

Example - resolved

const prottle = require('prottle');

prottle(2, [
  // batch 1
  () => Promise.resolve(1),
  () => Promise.resolve(2),
  // batch 2
  () => Promise.resolve(3),
  () => new Promise((resolve, reject) => {
    setTimeout(() => resolve(4), 3000);
  }),
  // batch 3
  () => Promise.resolve(5),
])
  .then(res => {
    console.log(res); // [ 1, 2, 3, 4, 5 ]
  });

Example - rejected

const prottle = require('prottle');

prottle(2, [
  () => Promise.resolve('yay'),
  () => Promise.reject('beep boop'),
  () => Promise.resolve('wow')
])
  .catch(err => {
    console.log(err); // beep boop
  });

Works with returned values too!

const prottle = require('prottle');

prottle(2, [
  () => 1,
  () => 2,
  () => 3
])
  .then(res => {
    console.log(res); // [ 1, 2, 3 ]
  });