diff --git a/lib/std.js b/lib/std.js index 8365217..57f6eaa 100644 --- a/lib/std.js +++ b/lib/std.js @@ -106,7 +106,7 @@ function repeat(target, callback, onError) { var ms = target; var i = 0; - var n = 0; + var result = null; var handler = null; var cur = Date.now(); var end = cur + ms; @@ -115,14 +115,18 @@ function repeat(target, callback, onError) { while (ms === true ? true : (cur < end)) { try { if (typeof callback === "function") - var n = callback(i); - if (typeof n === "number") - i += n - ; + var result = callback(i); + if (typeof result === "number") { + i += result; + } else if (result === false) { + break; + } ; } catch (e) { if (typeof onError === "function") - onError(e) + if (onError(e) === false) + break + ; ; } cur = Date.now(); @@ -141,11 +145,15 @@ function repeat(target, callback, onError) { for (var i = 0; i < arr.length; i++) { try { if (typeof callback === "function") - callback(i, arr[i]) + if (callback(i, arr[i]) === false) + break + ; ; } catch (e) { if (typeof onError === "function") - onError(e) + if (onError(e) === false) + break + ; ; } }