Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A sane control flow library.
JavaScript
Branch: master

v0.2.0

Signed-off-by: Tim Smart <tim@fostle.com>
latest commit 5b974f58f3
@tim-smart authored
Failed to load latest commit information.
.gitignore 0.1.2 - Fix for empty arrays
README First version
index.js Operation#save() + tests
package.json v0.2.0
test.js Operation#save() + tests

README

AsyncArray
==========

Yet another control flow library after getting fustrated with previous ones.

## Usage

The `next` callback takes the arguments (error, data)

    var AsyncArray = require('async-array')

    var array = new AsyncArray([1, 2, 3, 4])

    array
      .map(function (item, i, next) {
        db.query('SELECT * FROM x WHERE id = ?', [item], next)
      })
      .done(function (error, results) {
        console.log("Got me database listings partner!")
      })
      .forEach(function (db_result, i, next) {
        doSomethingAsync(db_result, next)
      })
      .exec()

As you can see, you can chain stuff and the result is passed along from the previous operation. If you don't call `exec` immediately you can store the operation to be executed at some later time.

`AsyncArray` inherits from `Array` with the following methods added:

- map
- mapSerial
- filter
- filterSerial
- forEach
- forEachSerial

Serial methods do things one after another instead of in parallel.

Something went wrong with that request. Please try again.