https://github.com/dresende/node-butler
A simple asynchronous chaining butler
https://github.com/dresende/node-butler
Last synced: 11 months ago
JSON representation
A simple asynchronous chaining butler
- Host: GitHub
- URL: https://github.com/dresende/node-butler
- Owner: dresende
- Created: 2011-08-11T11:49:54.000Z (over 14 years ago)
- Default Branch: master
- Last Pushed: 2011-08-18T13:05:33.000Z (over 14 years ago)
- Last Synced: 2025-01-02T02:44:39.602Z (about 1 year ago)
- Language: JavaScript
- Homepage: http://dresende.github.com/node-butler/
- Size: 145 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Node Butler
This module helps when you need to call several asynchronous calls one after each other.
## Install
npm install butler
## Example
var fs = require("fs"),
Butler = require("./../lib/butler").Butler;
// fs.readFile()
function readFileAsync(filename, cb) {
var Alfred = new Butler();
Alfred
.add(fs.open, filename, "r")
.store("fd")
.chain(fs.fstat)
.wait(function (err, stats) {
if (err) { cb(err); return false; }
// Alfred.storage.fd was saved previously using .store("fd", [ param index = 0])
Alfred.storage.size = stats.size;
Alfred
.add(fs.read, Alfred.storage.fd, new Buffer(Alfred.storage.size), 0, Alfred.storage.size, 0)
.wait(function (err, size, data) {
if (err) { cb(err); return false; }
Alfred.storage.data = data;
})
.add(fs.close, Alfred.storage.fd)
.wait(function (err) {
if (err) { cb(err); return false; }
cb(null, Alfred.storage.data);
});
});
}
readFileAsync(__dirname + "/fs.js", function (err, data) {
if (err) {
return console.log("error reading file", err);
}
console.log("FILE\n-------------------------");
console.log(data);
console.log("-------------------------");
});