+5
-11
@@ -6,3 +6,3 @@ // Generated by CoffeeScript 1.10.0 | ||
| module.exports = loopify = function() { | ||
| var action, arg, handle, i, promise, sleep, start, stop; | ||
| var action, arg, handle, i, promise, sleep, stop; | ||
| arg = 2 <= arguments.length ? slice.call(arguments, 0, i = arguments.length - 1) : (i = 0, []), action = arguments[i++]; | ||
@@ -14,4 +14,6 @@ sleep = arg[0]; | ||
| sleep = +sleep; | ||
| if (!(sleep > 0)) { | ||
| sleep = 0; | ||
| } | ||
| handle = null; | ||
| start = -Infinity; | ||
| stop = false; | ||
@@ -36,11 +38,3 @@ promise = new Promise(function(resolve, reject) { | ||
| p.then(function() { | ||
| var now, timeout; | ||
| if (sleep > 0) { | ||
| now = new Date().getTime(); | ||
| timeout = start + sleep - now; | ||
| start = now; | ||
| return handle = setTimeout(_loop, timeout > 0 ? timeout : 0); | ||
| } else { | ||
| return handle = setTimeout(_loop, 0); | ||
| } | ||
| return handle = setTimeout(_loop, sleep); | ||
| }); | ||
@@ -47,0 +41,0 @@ return p["catch"](function(err) { |
+1
-1
| { | ||
| "name": "loopify", | ||
| "version": "0.1.0", | ||
| "version": "0.1.1", | ||
| "description": "Loop over a function", | ||
@@ -5,0 +5,0 @@ "main": "lib/index.js", |
+2
-9
@@ -6,4 +6,4 @@ module.exports = loopify = ([sleep]..., action) -> | ||
| sleep = +sleep | ||
| sleep = 0 unless sleep > 0 | ||
| handle = null | ||
| start = -Infinity | ||
| stop = no | ||
@@ -17,10 +17,3 @@ promise = new Promise (resolve, reject) -> | ||
| return if err? then reject(err) else resolve() | ||
| p.then -> | ||
| if sleep > 0 | ||
| now = new Date().getTime() | ||
| timeout = start + sleep - now | ||
| start = now | ||
| handle = setTimeout _loop, if timeout > 0 then timeout else 0 | ||
| else | ||
| handle = setTimeout _loop, 0 | ||
| p.then -> handle = setTimeout _loop, sleep | ||
| p.catch (err) -> reject err | ||
@@ -27,0 +20,0 @@ do _loop |
5889
-6.45%48
-11.11%