batched

Async chaining sugar. Turn async methods into a batch

batched

Async chaining sugar. Turn async methods into a batch

Basically take a hash of asynchronous functions (or methods) and allow you to do serialized batch of commands on it.

A batch "starts" on the nextTick and does each chained command in serial.

If any have a callback that callback will be called. Else a default callback is used that emits an "error" event on the batch if there is an error.

var batched = require("batched")
 
var asyncThing = {
    _state: {
        1: 1
        , 2: 2
        , 3: 3
    }
    , getAllfunction (callback) {
        var state = this._state
        process.nextTick(function () {
            callback(null, state)
        })
    }
    , getfunction (idcallback) {
        var state = this._state
        process.nextTick(function () {
            callback(null, state[id])
        })
    }
    , setfunction (idvaluecallback) {
        var state = this._state
        process.nextTick(function () {
            state[id] = value
            callback(null)
        })
    }
    , delfunction (idcallback) {
        var state = this._state
        process.nextTick(function () {
            delete state[id]
            callback(null)
        })
    }
}
 
batched(asyncThing)
    .set("foo", "bar")
    .set("hello", "world")
    .del("1")
    .del("2")
    .get("3", function (errresult) {
        console.log("result", result)
    })
    .getAll(function (errresults) {
        console.log("results!", results)
    })
    .on("error", function () {
        // No errors! 
    })
    .once("finish", function () {
        console.log("finished")
    })
 
console.log("go chain go!")
 

npm install batched

  • Raynos