bluebird-as

Higher Level functions on top of bluebird

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

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

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.cast(urls)
    .then( as.sequenceOf(function(url){
      return scrapeUrlIntoDatabaseOrSo(url);
    }))
    .then(function(){
      doSomethingWithAllResultsCollectedInDatabase();
    });

coffeescript:

  urls = ['http://www.google.de']
 
  Promise.cast(urls)
    .then as.sequenceOf (url)->
      scrapeUrlIntoDatabaseOrSo(url)
    .then ()->
      doSomethingWithAllResultsCollectedInDatabase()

This is like async.eachSeries

Run promises in sequence but with a degree of parallelism.

javascript:

  var urls = ['http://www.google.de'];
 
  Promise.cast(urls)
    .then( as.sequenceWithParallelism(10,function(url){
      return scrapeUrlIntoDatabaseOrSo(url);
    }))
    .then(function(){
      doSomethingWithAllResultsCollectedInDatabase();
    });

coffeescript:

  urls = ['http://www.google.de']
 
  Promise.cast(urls)
    .then as.sequenceWithParallelism 10(url)->
      scrapeUrlIntoDatabaseOrSo(url)
    .then ()->
      doSomethingWithAllResultsCollectedInDatabase()

This is like async.eachLimit