1.0.8 • Published 9 years ago

nexter v1.0.8

Weekly downloads
-
License
ISC
Repository
-
Last release
9 years ago

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();
})
1.0.8

9 years ago

1.0.7

9 years ago

1.0.6

9 years ago

1.0.5

9 years ago

1.0.4

9 years ago

1.0.3

9 years ago

1.0.2

9 years ago

1.0.1

9 years ago

1.0.0

9 years ago