laps
Version:
Simple flow-control lib for Node.js: combine sync/async steps, organize your spaghetti-code
97 lines (85 loc) • 2.09 kB
JavaScript
var dns = require('dns');
var Laps = require('../../lib');
function isPrime(num) {
if (num < 2) return false;
for (var i = 2; i < num; ++i) {
if (num % i === 0)
return false;
}
return true;
}
function nextPrime(num, handler) {
for (var i = num + 1; ; ++i) {
if (isPrime(i)) {
handler(i);
return;
}
}
}
var count = 10000;
var startNum = 10000;
function testLaps(){
console.log('TEST LAPS');
var start = new Date();
var findPrime = function() {
new Laps()
.lap(function() {
nextPrime(startNum, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).lap(function() {
nextPrime(this.val, this.cb('calc'));
}).cmd('calc', function(val) {
this.val = val;
}).on('finish', function() {
//console.log (this.val);
}).run();
};
for (var i = 0; i < count; ++i) {
findPrime();
}
console.log(new Date() - start);
}
function testNode(){
console.log('TEST NODE');
var start = new Date();
var findPrime = function() {
nextPrime(startNum, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
nextPrime(val, function(val){
//console.log (val);
});
});
});
});
});
});
});
});
});
};
for (var i = 0; i < count; ++i) {
findPrime();
}
console.log(new Date() - start);
}
testLaps();
testNode();