Series
Compose a series of chainable async methods. Supports callbacks AND promises.
Supports Node and Browserify
Install
npm install series --save
Usage
var Series = ;var series = ;var async = ; // <~~ simply for usage example // Add methods to our series sequenceseries; series; series; // Use our seriesvar list = name: 'John' age: 25 name: 'Jane' age: 20 ; ;
series
The instance value returned from calling Series()
is both a function and an object. The object is the instance and the function returns the series chain.
series()
supports the following as initial values to start the series:
- Primitive - strings, numbers, etc.
- Array - an array of primitives or objects
- Function - a function that is passed a
next
callback that must be called with the following:next(err, value)
. The value passed as the second argument becomes the initial value of the series. - Promise - a Promises/A+ compliant value
For example:
Primitive
var Series = ;var series = ; var someValue = 'my value';;
Array
var Series = ;var series = ; var someValue = 12345;;
Function
var Series = ;var series = ; ;
Promise
var Series = ;var Promise = ; // <~~ npm install promise var series = ; var promise = { // Some logic}; ;
instance methods
These methods are available on the series
variable.
add(methodName, methodTask)
Composes a chainable method on the series. The method is added for all instances of that particular series.
methodName
A string that will be used as the method name
methodTask
A callback function that is passed the following parameters
items
- any value that you would like passed to the first method in the seriesiterator
- the method called on the value from the previous method that performs some sort of user defined operationnext
- the callback once all items in the list or collection have been processed.
For Example:
var Series = ;var series = ; // Add methods to our series sequenceseries;
series sequence methods
These methods are available on the value returned from calling series(someValue)
The methods available vary according to which methods have been added to the series. In the usage example above, we've added map
, sortBy
, and filter
. These methods would be available on the series as well as:
then(successCallback, errorCallback)
Each series sequence returns a promise. Refer to the Promises/A+ spec for more details.
successCallback
This is called once all chained methods have processed the initial value, unless an error has occurred.
errorCallback
This is called if an error occurs anywhere when processing the initial value in any of the chainable methods. If an error occurs, all processing stops.
For Example:
var Series = ;var series = ; var someValue = 'my value'; ;
Callbacks
Each method in the series can take a callback if you'd rather not use promises. Each callback will be called at the completion of each method.
For Example:
var Series = ;var series = ;
Run Tests
npm install
npm test