Nitrate Processed Mincemeat

    nexter

    1.0.8 • Public • Published

    nexter

    Flattens an asynchronous call stack into a linear queue using a fluent interface.

    USAGE

    var count = 0;
     
    var nexter = require('nexter');
    nexter()
    .each(req.files, function (file, state, next) {
        state.file = file;
        // Call functions that use simple next(err) style callbacks.
        process(file, next); 
    })
    // Whenever next is called in the loop above, this function is called 
    //  with a unique state object.
    .then(function (state, next) { 
        if (path.extname(state.file.originalname).toLowerCase() == '.zip') {
            unzip(file, next);
        } else {
            next();
        }
    })
    // Create predicate based functions using when
    .when(function () { return (++count >= req.files.length) }, function (state, next) {
        notifyCr(dir, req.body.path, next);
    })
    .then(function (state, next) {
        res.status(204).end();
    })
     
    .error(next) // Provide the error method for the given request.
     
    .go(); // Call go to set everything in motion.

    IF ORDER IS INPORTANT

    seq begins a sequence of calls. The sequence is completed for each item in the given array in turn and in order. The item can be past down the sequence in the state variable if necessary. This is the same as if nesting one nexter queue inside another.

    nexter()
    .seq(req.files, function (file, state, next) {
        // This and the then's that follow it are called
        //  sequentially for each file in req.files.
        next();
    })
     
    .then(function (state, next) { 
        // All of these then's are called once for each 
        //  file in order and not parallel as with each().
        next();
    })
     
    .then(function (state, next) { 
        // The next file has not started, and will not 
        //  until endSeq() is reached.
        next();
    })
     
    .endSeq() // This ends the sequence and jumps back 
              //  to the seq() call to handle the next file.
     
    // Create predicate based functions using when
    .then(function (state, next) {
        // This is called after the sequence ends.
    })
    .then(function (state, next) {
        res.status(204).end();
    })

    Install

    npm i nexter

    DownloadsWeekly Downloads

    1

    Version

    1.0.8

    License

    ISC

    Last publish

    Collaborators

    • avatar