bluebird-as

Higher Level functions on top of bluebird


Keywords
bluebird, promises, sequence, parallelism
License
MIT
Install
npm install bluebird-as@1.0.3

Documentation

bluebird-as

A tiny number of helper functions to use with bluebird (other promise libraries not tested) for higher level functions such as sequence etc

Usage

  var Promise = require('bluebird');

  var as = require('bluebird-as');
  as.use(Promise);

sequenceOf

Run Promises in strict sequence (without passing the result).

Note: In bluebird 2.x this is also available with .each

javascript:

  var urls = ['http://www.google.de'];

  Promise.resolve(urls)
    .then( as.sequenceOf(function(url){
      return scrapeUrlIntoDatabaseOrSo(url);
    }))
    .then(function(){
      doSomethingWithAllResultsCollectedInDatabase();
    });

coffeescript:

  urls = ['http://www.google.de']

  Promise.resolve(urls)
    .then as.sequenceOf (url)->
      scrapeUrlIntoDatabaseOrSo(url)
    .then ()->
      doSomethingWithAllResultsCollectedInDatabase()

This is like async.eachSeries

sequenceWithParallelism

Run promises in sequence but with a degree of parallelism.

javascript:

  var urls = ['http://www.google.de'];

  Promise.resolve(urls)
    .then( as.sequenceWithParallelism(10,function(url){
      return scrapeUrlIntoDatabaseOrSo(url);
    }))
    .then(function(){
      doSomethingWithAllResultsCollectedInDatabase();
    });

coffeescript:

  urls = ['http://www.google.de']

  Promise.resolve(urls)
    .then as.sequenceWithParallelism 10, (url)->
      scrapeUrlIntoDatabaseOrSo(url)
    .then ()->
      doSomethingWithAllResultsCollectedInDatabase()

This is like async.eachLimit