Skip to content
Promise.all() throttle
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
.travis.yml
README.md
package.json
prottle.js
prottle.test.js

README.md

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 ES2015 preset using babelify. Use a Promise polyfill for IE.

Installation

$ npm install prottle --save

Example - resolved

'use strict';
let 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

'use strict';
let 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!

'use strict';
let prottle = require('prottle');

prottle(2, [
    () => 1
    , () => 2
    , () => 3
])
.then(res => {
    console.log(res); // [ 1, 2, 3 ]
});
You can’t perform that action at this time.