Skip to content

Dirt simple solution for waiting on async event listeners

Notifications You must be signed in to change notification settings

Two-Screen/esync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ESync is a dirt simple module for waiting on a bunch of async tasks. Build Status

var esync = require('esync');

var wait = esync();

wait(function(cb) {
    cb();
});
wait(function(cb) {
    setTimeout(cb, 1000);
});
wait(function(cb) {
    var err = new Error("Oops!");
    cb(err);
});

wait.end(function(err) {
    /* ... */
});

Its main purpose is as a utility for EventEmitters that need to offer listeners a way to delay execution.

var esync = require('esync');
var EventEmitter = require('events');

var emitter = new EventEmitter();

emitter.on('foo', function(arg1, arg2, wait) { wait(function(cb) {
    setTimeout(cb, 1000);
}); });

var wait = esync();
emitter.emit('foo', 3, 5, wait);
wait.end(function(err) {
    /* ... */
});

The beaty of this is that it's optional; listeners can simply ignore the parameter. Additionally, it follows the ‘error first’ callback parameter convention seen in Node.js.

About

Dirt simple solution for waiting on async event listeners

Resources

Stars

Watchers

Forks

Packages

No packages published