EventSync
This controls flow by events like flags.
Usage
If you want to make a http server serving a static file and load file before handling the requests, you can put http.createServer() in the callback of fs.readFile(). But it makes a too deep nest.
Now, with EventSync, you can write the code like this.
var fs = require('fs'),
http = require('http'),
EventSync = require('evsync');
var evsync = new EventSync();
fs.readFile('foo.txt', 'utf8', function (err, data) {
if (err) {
evsync.open('error', err);
} else {
evsync.open('load', file);
}
});
http.createServer(function (req, res) {
evsync.once('load', function (file) {
res.writeHead(200);
res.end(file);
});
evsync.once('error', function (err) {
res.writeHead(500);
res.end('Failed to load the file.');
});
}).listen(8124);