Comparing version 1.6.0 to 1.7.0
@@ -9,3 +9,3 @@ /** | ||
var easyPing = require('./easy-ping'); | ||
var easyTick = require('./easy-tick'); | ||
function loop(obj, func, concurrency, last){ | ||
@@ -21,2 +21,6 @@ if(typeof obj === 'function' || obj === true) | ||
} | ||
else if(Array.isArray(obj) && typeof func === 'number' && typeof concurrency === 'number' && typeof last === 'function') | ||
{ | ||
easyTick(this, Array.from(arguments)); | ||
} | ||
else | ||
@@ -27,2 +31,41 @@ { | ||
} | ||
/** | ||
* ์ต์ด์๋ง concurrency ์ซ์๋งํผ ๋ณ๋ ฌ ์์ํ๊ณ ๊ทธ ๋ด๋ถํด ์์ฐจ์ ์ผ๋ก ์คํ | ||
* @param {*} obj | ||
* @param {*} concurrency | ||
* @param {*} func | ||
* @param {*} last | ||
*/ | ||
function loopOnce(obj, concurrency, func, last){ | ||
let len = obj.length; | ||
if(concurrency >= len) | ||
{ | ||
loop(obj, concurrency, func, last); | ||
} | ||
else | ||
{ | ||
let task = obj.splice(0, concurrency); | ||
len = obj.length; | ||
loop(task, concurrency, func, function(err, results1){ | ||
if(err) | ||
{ | ||
if(last) last(err, results1); | ||
} | ||
else | ||
{ | ||
loop(obj, 1, function(i, value, next){ | ||
func(i+len-1, value, next); | ||
}, function(err, results2){ | ||
if(results1) | ||
{ | ||
if(!results2) results2 = []; | ||
results1 = results1.concat(results2); | ||
last(err, results1); | ||
} | ||
else if(last) last(err); | ||
}); | ||
} | ||
}); | ||
} | ||
} | ||
loop["ping"] = loop["waterfall"] = loop["for"] = loop["while"] = loop["loop"] = loop["forEach"] = loop; | ||
@@ -32,3 +75,5 @@ loop["create"] = easyManual; | ||
loop["parallel"] = easyAsync.parallel; | ||
loop["once"] = loopOnce; | ||
loop["tick"] = easyTick; | ||
module.exports = loop; |
{ | ||
"name": "easy-loop", | ||
"version": "1.6.0", | ||
"version": "1.7.0", | ||
"description": "Easy sync loop processing for Node.js", | ||
@@ -5,0 +5,0 @@ "main": "lib/easy-loop", |
@@ -486,2 +486,48 @@ //var fs = require('fs'); | ||
222 end | ||
*/ | ||
*/ | ||
//Case18 Start => once parallel. after series Processing | ||
/* | ||
loop.once([1,2,3,4,5], 2, function(i, value, next){ | ||
setTimeout(function(){ | ||
console.log(i, "=", value); | ||
next(); | ||
}, 1000); | ||
}, function(err, results){ | ||
console.log("result",arguments); | ||
}); | ||
*/ | ||
/* | ||
//Case19 Start => tick parallel(arg : array, tick-time(ms), concurrency, callback) | ||
console.log(new Date(), "start"); | ||
loop.tick([1,2,3,4,5,6,7,8,9,10], 1000, 3, function(i, value, next){ | ||
console.log(new Date(), i, "=", value); | ||
setTimeout(function(){ | ||
next(); | ||
}, 2000); | ||
}, function(err){ | ||
console.log(new Date(), "end", arguments); | ||
}); | ||
*/ | ||
/* | ||
//result | ||
2017-09-08T01:43:23.774Z 'start' | ||
2017-09-08T01:43:23.779Z 0 '=' 1 | ||
2017-09-08T01:43:23.781Z 1 '=' 2 | ||
2017-09-08T01:43:23.781Z 2 '=' 3 | ||
2017-09-08T01:43:24.782Z 3 '=' 4 | ||
2017-09-08T01:43:24.782Z 4 '=' 5 | ||
2017-09-08T01:43:24.782Z 5 '=' 6 | ||
2017-09-08T01:43:25.783Z 6 '=' 7 | ||
2017-09-08T01:43:25.784Z 7 '=' 8 | ||
2017-09-08T01:43:25.784Z 8 '=' 9 | ||
2017-09-08T01:43:26.783Z 9 '=' 10 | ||
2017-09-08T01:43:28.784Z 'end' { '0': null } | ||
*/ | ||
37741
12
879