Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Branch: master
Fetching contributors…

Cannot retrieve contributors at this time

70 lines (46 sloc) 1.68 KB



When developing Node.js applications sometimes you need to know when a whole bunch of callbacks have finished. You could just use synchronous methods, but that defeats the point of using Node, doesn't it?

Gatherer lets you set a callback to be run after a whole bunch of other callbacks have returned, but because that sounds incredibly boring it uses a metaphor of parties:

Invite your guests to your gathering. Once all your guests have accepted their invites, start the party!

The Code

To install

npm install gatherer
cd node_modules/gatherer
npm install

In your javascript file.

var gathering = require('gatherer');

Creating a party

Create a new gathering..

var gathering = gatherer(); 

Create your invitations...

_.each(files, function( file ){
    gathering.createInvitation( function( accept, decline ){
        fs.readFile( file, 'utf8', function( err, data ){
            if( !err ){
                // do something with your file data..
            } else {


Send the invitations, executing a callback when they're done. Returns 'err' if there's an err, otherwise nothing.

        // all invites were accepted
    } else {
        // some invites were declined... err === number of declines

You can also set a limit on how long you want to wait for the invites:

    if(err==='Error: Timed out'){
        // it waited 2000 miliseconds then gave up          
}, { timeout : 2000 }) // will give up after 2000 ms. Warning: This doesn't cancel the execution of callbacks that are still running.

Run the tests

You need mocha and should.js.

make test
Jump to Line
Something went wrong with that request. Please try again.