q-flow

Flow control (loops, arrays, etc) with promises and Q.

  • q-flow

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
q-flow
110.2.011 years ago11 years agoMinified + gzip package size for q-flow in KB

Readme

map
Call fn, which returns a promise, on each item in array, returning new array.
var q = require('q');
require('q-flow'); // extends q

var fn = function (each) {
    return q.when(each + 1);
};

var array = [ 1, 2, 3 ];

q.map(array, fn).then(function (array) {
    expect(array).to.deep.equal([ 2, 3, 4 ]);
});
each
Like map except new array is not created.
find
Find first object in array satisfying the condition returned by the promise returned by fn.
var array = [ 1, 2, 3 ];
q.find(array, function (each) {
    return q.fcall(function () {
        return each === 2;
    });
}).then(function (result) {
    expect(result).to.equal(2);
});
until
Loop until the promise returned by fn returns a truthy value.
q.until(function () {
    return q.fcall(function () {
        /* code which eventually returns true */
    });
}).then(function (each) {
    /* finished */
});
addBack
Allow one to place node-styled callback onto promise. This exits the promise run-loop so that it no longer catches exceptions.
promise.addBack(function (err, result) {
    // gets `err` if failure happened, otherwise `result` is populated
});