chainable

0.1.4 • Public • Published

chainable

Create fluent asynchronous APIs.

Usage

Extend the Chainable class and use the chainable combinator to designate asynchronous methods as being chainable. Methods wrapped with the chainable combinator will be treated as chainable when they are not passed a callback. Each method in the chain will be executed in series, passing it's result to the next method. Pass a callback to the final method to end the chain and begin computation.

Example

chainable = require 'chainable'
 
class Calculator extends chainable
  numbers: []
 
  number: chainable (number, callback) ->
    @numbers.push number
    callback null
 
  add: chainable (callback) ->
    result = 0
    while = @numbers.pop()
      result += n
 
    callback nullresult
 
  wait: chainable (callback) ->
    setTimeout ->
      callback null
    100
 
test = new Test()
test.number(4)
    .number(5)
    .wait()
    .add (err, result) ->
        # result == 9 

Readme

Keywords

none

Package Sidebar

Install

npm i chainable

Weekly Downloads

6

Version

0.1.4

License

BSD

Last publish

Collaborators

  • zeekay