davidgtonge / flowchain

Async Flow Control with Chainable API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Flow Control with Chainanble API & Shared State

Available on NPM: npm install flowchain

Docs coming soon. Here is an example:

flow = require "flowchain"

processImage = flow()
  .sync(getLocation, null, "location")
  .async(fs.stat, "location", "stat")
  .sync(isFile)
  .async(getDims, "location", "dims")
  .async(save)

processImage.runMany photos, ->
  console.log "Completed"

Sync

sync = (task, input, output) The sync method adds a synchronous task to the object.

If input is defined, then it is used as a key to the memo object to get the data to pass into the task.

If output is defined, then it is used as a key on the memo object to store the output of the function

Async

async works in the same way, but accepts asynchronous functions.

If output is defined then the 2nd argument passed to the callback function will be saved.

About

Async Flow Control with Chainable API