Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
node module: some functions for working with promises
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
test
.gitignore
LICENSE.md
README.md
index.js
package.json

README.md

avec

Eventual ES5 array operations using promises

installation

$ npm install avec

usage

Think of it like using native ES5 Array.prototype methods on Promised arrays.

var documents = getPromisedArrayOfStuffFromDB()
avec(documents).forEach(function (document) {
  console.dir(document)
})

avec(documents)
  .filter(x)
  .map(x)
  .reduce(x)
  .then(function (aggregate) {
    console.log('we can string things together')
    // the neat thing about promises is that there's no `value()`
    // or finalizer method to call, since each step of the way
    // returns a valid promises/a `thenable` promise.
  })

api

avec(promisedCollection)

Begins a promise chain.

Supported Array.prototype methods:

forEach, filter, map, reduce, reduceRight, every, some, concat, reverse, sort, indexOf, lastIndexOf, shift, unshift, pop, push, slice, splice

The return value for each of these is the a Promise of whatever the return value would be on a synchronous array.

avec(promise, continuation)

like calling promise.then(continuation), except continuation's this is also set to the promise value. This allows for slightly more fluid syntax:

var document = getDocumentAsPromise(5)

avec(document, function () {
  console.log('We got ' + this.title)
})

This is pretty much an ergonomic function I wanted when writing scripts.

avec.each(promisedArray, iterator), alias avec.chaque, avec.forEach

Like calling promise.then(function (val) { val.forEach(iterator) }), Use when you're expecting an array value that you want to iterate over.

avec.map(promisedArray, scalarFunction

Like calling promise.then(function (val) { return val.map(scalarFunction) }). Returns a Promise

running the unit tests

In package root directory:

$ npm install
$ npm test

contributors

jden jason@denizac.org

license

MIT. (c) 2013 Agile Diagnosis hello@agilediagnosis.com See LICENSE.md

Something went wrong with that request. Please try again.