lasync

An simple and tiny async library

npm install lasync
1 downloads in the last day
6 downloads in the last week
11 downloads in the last month

lasync

An simple and tiny async library for control flow.

Build Status

browser support

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);
});
npm loves you