Comparing version 1.7.0 to 1.7.1
@@ -22,3 +22,3 @@ /** | ||
{ | ||
easyTick(this, Array.from(arguments)); | ||
easyTick.tick(this, Array.from(arguments)); | ||
} | ||
@@ -74,4 +74,5 @@ else | ||
loop["once"] = loopOnce; | ||
loop["tick"] = easyTick; | ||
loop["tick"] = easyTick.tick; | ||
loop["equalTick"] = easyTick.equalTick; | ||
module.exports = loop; |
'use strict'; | ||
var loop = require('./easy-for'); | ||
/** | ||
* tick(ms) ëš concurrency ę°ėŠ ė¤ííë¤. | ||
*/ | ||
function easyTick(arr, ms, concurrency, func, last){ | ||
@@ -28,2 +31,3 @@ const MAX = arr.length; | ||
}); | ||
if(TOTAL_PAGE === 0) runLast(); | ||
@@ -39,3 +43,42 @@ function runLast(){ | ||
} | ||
exports.tick = easyTick; | ||
/** | ||
* tick(ms) ëš concurrency ę°ėŠ ė¤ííëë° (tick / concurrency) ms ė´ėŠ ę°ę˛Šė ëęŗ ė¤ííë¤. | ||
* tick ėę° ėė concurrency ę°ëĨŧ ė¤ííëęą´ ėė ëėŧíë¤. | ||
*/ | ||
function easyEqualTick(arr, ms, concurrency, func, last){ | ||
var MAX = arr.length; | ||
var tickMS = ms / concurrency; | ||
var mod = tickMS % 1; | ||
tickMS = tickMS - mod; | ||
var lastMS = 0; | ||
var isLastMS = mod > 0; | ||
if(isLastMS) lastMS = ms - tickMS * (concurrency - 1); | ||
module.exports = easyTick; | ||
var successCount = 0; | ||
var stop = null; | ||
var isEnd = false; | ||
loop(arr, function(i, value, next){ | ||
var tick = isLastMS && (i + 1) % concurrency === 0 ? lastMS : tickMS; | ||
setTimeout(() => { | ||
if(stop) runLast(); | ||
else next(); | ||
}, tick); | ||
func(i, value, function(e){ | ||
successCount++; | ||
if(e) stop = e; | ||
runLast(); | ||
}); | ||
}); | ||
if(MAX === 0) runLast(); | ||
function runLast(){ | ||
if(!last || isEnd) return; | ||
if(MAX <= successCount || stop) | ||
{ | ||
isEnd = true; | ||
last(stop); | ||
} | ||
} | ||
} | ||
exports.equalTick = easyEqualTick; |
{ | ||
"name": "easy-loop", | ||
"version": "1.7.0", | ||
"version": "1.7.1", | ||
"description": "Easy sync loop processing for Node.js", | ||
@@ -5,0 +5,0 @@ "main": "lib/easy-loop", |
38960
922