lasync

An simple and tiny async library

lasync

An simple and tiny async library for control flow.

V1.1

####series

Runs an array of functions in series, each passing their results to the next in the array, but, if any of the functions pass an error to the callback, the next function is not executed and the main callback is immediately called with the error.

lasync.series("array tasks", [callback(err, results)])

// results is an array
  
// CODE

var lasync = require('lasync');

function a (cb) {
    console.log('run function "a"');
    setTimeout(function () {
      return cb(null);
    }, 3000);
}

function b (cb) {
    console.log('run function "b"');
    setTimeout(function () {
      return cb(null, 'Hello World');
    }, 2500);
}

function c (cb) {
    console.log('run function "c"');
    return cb(null, 1);
}

lasync.series([a, b, c], function (err, results) {
  if (err) throw err;
  console.log(results);
});

####parallel

Run an array of functions in parallel, without waiting until the previous function has completed, but, if any of the functions pass an error to the callback, the main callback is immediately called with the value of the error.

lasync.parallel("array tasks", [callback(err, results)])        

// results is an array


// CODE

var lasync = require('lasync');


// the same functions for example
function a (cb) {
    console.log('run function "a"');
    setTimeout(function () {
      return cb(null);
    }, 3000);
}

function b (cb) {
    console.log('run function "b"');
    setTimeout(function () {
      return cb(null, 'Hello World');
    }, 2500);
}

function c (cb) {
    console.log('run function "c"');
    return cb(null, 1);
}

lasync.parallel([a, b, c]);

####waterfall

Runs an array of functions in series, each passing their results to the next in the array, but, if any of the functions pass an error to the callback, the next function is not executed and the main callback is immediately called with the error.

waterfall("array tasks", [callback(err, result)])

// results is an array
  
// CODE

var lasync = require('lasync');

function a (cb) {
    console.log('run function "a"');
    setTimeout(function () {
      return cb(null, 'Hello');
    }, 3000);
}

function b (arg, cb) {
    console.log('run function "b"');
    setTimeout(function () {
      return cb(null, arg, 'World');
    }, 2500);
}

function c (arg1, arg2, cb) {
    console.log('run function "c"');
    return cb(null, arg1 + ' ' + arg2);
}

waterfall([a, b, c], function (err, result) {
  if (err) throw err;
  console.log(result);
});