Minimalistic, zero dependency, async utilities for ES6, ES2015, node v6. This library assume node v6 or above with ES2015 Promise and generators. It has no dependency.
DEPRECATED: Use native async/await from Node.js >8.x. This was just a stop gap plugin, but now, no good reason to use it unless you have to ben on node.js 6.x.
Promisify
Promisify a function which follow the standard callback(err, result) pattern.
const promisify = require("async6").promisify;
const glob = require('glob');
const pglob = promisify(glob);
glob("**/*.js", options, function (er, files) {
})
pglob("**/*.js").then(files => console.log(files));
- Use the default Node v6, es2015 Promise.
- Does not use
bind()
as there are some performance issues.
run
Run a generator function or generator function "instance" (after first call) that supports direct value, promise in yields, and return a ES2015 Promise which result with the return of the generator function.
const run = require("async6").run;
function* mygen(val){
val = val || 0;
var a = yield 12;
var b = yield getB();
var c = yield getPromiseForC();
return a + b + c;
}
run(mygen).then(v => console.log(v));
run(mygen(10)).then(v => console.log(v));
Combining promise, yield, generator
const async6 = require("async6");
const promisify = async6.promisify;
const run = async6.run;
const pglob = promisify(require('glob'));
function* listWebFiles(root){
root = root || ""
var jsFiles = yield pglob(root + "**/*.js");
var cssFiles = yield pglob(root + "**/*.css");
return {jsFiles, cssFiles};
}
run(listWebFiles).then(r => console.log(`jsFiles:\n${r.jsFiles} \ncssFiles:\n${r.cssFiles}`));
run(listWebFiles("./dist/")).then(r => console.log(`jsFiles:\n${r.jsFiles} \ncssFiles:\n${r.cssFiles}`));