Skip to content

Instantly share code, notes, and snippets.

@danielearwicker
Created July 22, 2013 08:46
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danielearwicker/6052348 to your computer and use it in GitHub Desktop.
Save danielearwicker/6052348 to your computer and use it in GitHub Desktop.
A pure library approach to async/await in standard JavaScript #2
var fs = require('fs');
var path = require('path');
var Q = require('q');
var interrupt = require('./interrupt.js');
var readdir = interrupt.bind(Q.nfbind(fs.readdir));
var stat = interrupt.bind(Q.nfbind(fs.stat));
var consoleLog = interrupt.bind(console.log);
interrupt.async(function() {
var recurseDir = function(dir) {
readdir(dir).forEach(function(child) {
if (child[0] != '.') {
var childPath = path.join(dir, child);
if (stat(childPath).isDirectory()) {
recurseDir(childPath);
} else {
consoleLog(childPath);
}
}
});
};
recurseDir(process.argv[2]);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment