0.0.13 • Published 9 years ago

aiter v0.0.13

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

aiter-js

Lightweight async iterator for Node.js

Quick Examples

var range = require('aiter').range;
range(1, 10).forEach(function (i, next) {
    setTimeout(function() {
	    console.log('visit ' + i);
	    next();
    });
}).then(function () {
    console.log('async iteration complete');
});

Installation

$ npm install aiter

Examples

async array iteration

var range = require('aiter').range;
range(['a', 'b', 'c', 'd']).forEach(function (i, next) {
    setTimeout(function() {
	    console.log('visit ' + i);
	    next();
    });
}).then(function () {
    console.log('async iteration complete');
});

var aiter = require('aiter');
aiter.forEach(['a', 'b', 'c', 'd'], function (i, next) {
    setTimeout(function() {
	    console.log('visit ' + i);
	    next();
    });
}).then(function () {
    console.log('async iteration complete');
});

async numeric loop

var range = require('aiter').range;
range(1,100).forEach(function (i, next) {
    setTimeout(function() {
	    console.log('visit ' + i);
	    next();
    });
}).then(function () {
    console.log('async iteration complete');
});

var aiter = require('aiter');
aiter.forEach(aiter.range(1,100), function (i, next) {
    setTimeout(function() {
	    console.log('visit ' + i);
	    next();
    });
}).then(function () {
    console.log('async iteration complete');
});

omitted next function

var range = require('aiter').range;
range(1,100).forEach(function (i) {
    console.log('visit ' + i);
}).then(function () {
    console.log('async iteration complete');
});

var aiter = require('aiter');
aiter.forEach(aiter.range(1,100), function (i) {
    console.log('visit ' + i);
}).then(function () {
    console.log('async iteration complete');
});

skip iteration

var range = require('aiter').range;
range(1,10).forEach(function (i, next, iter) {
    console.log('visit ' + i);
    if(i == 3) {
        var skipped = iter.skip(3); // skipped is [4, 5, 6]
        console.log("skipped: " + skipped);
    }
    next();
}).then(function () {
    console.log('async iteration complete');
});

simple count

var range = require('aiter').range;
range(1, 10).count(function condition(i) { return i % 2 == 0; }, function result(count) {
  console.log('range(1, 10).count(i %% 2) => %d', count);
});

async count

var range = require('aiter').range;
range(1, 10000).count(function asyncCondition(i, next) {
  process.nextTick(function(){
    next(i % 2 == 0);
  });
}, function result(count) {
  console.log('range(1, 10000).count(i %% 2) => %d', count);
});

License

MIT

0.0.13

9 years ago

0.0.12

9 years ago

0.0.11

9 years ago

0.0.10

9 years ago

0.0.9

10 years ago

0.0.8

10 years ago

0.0.7

10 years ago

0.0.6

10 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

10 years ago

0.0.1

10 years ago