since we're in ES6 territory now, i'm thinking the sync version should be an iterable
var dirs = fs.readdirIter(__dirname);
for (dir of dirs) {
}
and have the async version be an object stream:
var stream = fs.readdirStream(__dirname);
stream.on('data', dir => )
See: nodejs/node-v0.x-archive#388