0.0.13 • Published 8 years ago

aiter v0.0.13

Weekly downloads
3
License
MIT
Repository
github
Last release
8 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

8 years ago

0.0.12

8 years ago

0.0.11

8 years ago

0.0.10

8 years ago

0.0.9

9 years ago

0.0.8

9 years ago

0.0.7

9 years ago

0.0.6

9 years ago

0.0.5

9 years ago

0.0.4

9 years ago

0.0.3

9 years ago

0.0.2

9 years ago

0.0.1

9 years ago