Nutritious Pumpkin Masses

    This package has been deprecated

    Author message:

    deprecated use native nodejs promise and async/await

    async6

    0.1.4 • Public • Published

    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);
     
    // the call back way
    glob("**/*.js", options, function (er, files) {
      // files is an array of filenames. 
    })
     
    // the promise way
    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(); // can be any promise that have a then function.
        return a + b + c;
    }
    // assuming getB() return 8, and getPromiseForC() will resolve to 10.
     
    run(mygen).then(v => console.log(v)); // 30
     
    run(mygen(10)).then(v => console.log(v)); // 40

    Combining promise, yield, generator

    const async6 = require("async6");
    const promisify = async6.promisify;
    const run = async6.run;
     
    const pglob   = promisify(require('glob'));
     
    // using generators, promise, and async6.run (see below)
    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}`));
    // or
    run(listWebFiles("./dist/")).then(r => console.log(`jsFiles:\n${r.jsFiles} \ncssFiles:\n${r.cssFiles}`));
     

    Keywords

    none

    Install

    npm i async6

    DownloadsWeekly Downloads

    1

    Version

    0.1.4

    License

    MIT

    Last publish

    Collaborators

    • jeremychone