again
Version:
call function again and again
115 lines (114 loc) • 4.66 kB
JavaScript
/* automatically generated by JSCoverage - do not edit */
if (typeof _$jscoverage === 'undefined') _$jscoverage = {};
if (! _$jscoverage['again.js']) {
_$jscoverage['again.js'] = [];
_$jscoverage['again.js'][5] = 0;
_$jscoverage['again.js'][6] = 0;
_$jscoverage['again.js'][7] = 0;
_$jscoverage['again.js'][10] = 0;
_$jscoverage['again.js'][11] = 0;
_$jscoverage['again.js'][12] = 0;
_$jscoverage['again.js'][13] = 0;
_$jscoverage['again.js'][16] = 0;
_$jscoverage['again.js'][17] = 0;
_$jscoverage['again.js'][18] = 0;
_$jscoverage['again.js'][20] = 0;
_$jscoverage['again.js'][21] = 0;
_$jscoverage['again.js'][23] = 0;
_$jscoverage['again.js'][24] = 0;
_$jscoverage['again.js'][25] = 0;
_$jscoverage['again.js'][26] = 0;
_$jscoverage['again.js'][27] = 0;
_$jscoverage['again.js'][28] = 0;
_$jscoverage['again.js'][29] = 0;
_$jscoverage['again.js'][30] = 0;
_$jscoverage['again.js'][32] = 0;
_$jscoverage['again.js'][33] = 0;
_$jscoverage['again.js'][34] = 0;
_$jscoverage['again.js'][36] = 0;
_$jscoverage['again.js'][37] = 0;
_$jscoverage['again.js'][38] = 0;
_$jscoverage['again.js'][39] = 0;
_$jscoverage['again.js'][40] = 0;
_$jscoverage['again.js'][41] = 0;
_$jscoverage['again.js'][42] = 0;
_$jscoverage['again.js'][43] = 0;
_$jscoverage['again.js'][48] = 0;
_$jscoverage['again.js'][51] = 0;
}
_$jscoverage['again.js'][5]++;
var crypto = require("crypto");
_$jscoverage['again.js'][6]++;
var __program = {};
_$jscoverage['again.js'][7]++;
var __timer = {};
_$jscoverage['again.js'][10]++;
function md5(str) {
_$jscoverage['again.js'][11]++;
var hash = crypto.createHash("md5");
_$jscoverage['again.js'][12]++;
str += new Date().getTime();
_$jscoverage['again.js'][13]++;
return hash.update(str, "utf-8").digest("hex");
}
_$jscoverage['again.js'][16]++;
function abort(key) {
_$jscoverage['again.js'][17]++;
clearInterval(__program[key]);
_$jscoverage['again.js'][18]++;
delete __timer[key];
}
_$jscoverage['again.js'][20]++;
function again(func, interval, times) {
_$jscoverage['again.js'][21]++;
interval = interval || 1000;
_$jscoverage['again.js'][23]++;
var f = (function () {
_$jscoverage['again.js'][24]++;
var that = this;
_$jscoverage['again.js'][25]++;
var args = f.arguments;
_$jscoverage['again.js'][26]++;
func.apply(that, args);
_$jscoverage['again.js'][27]++;
var key = md5(func.toString());
_$jscoverage['again.js'][28]++;
var obj = {};
_$jscoverage['again.js'][29]++;
if (times === 1) {
_$jscoverage['again.js'][30]++;
return;
}
_$jscoverage['again.js'][32]++;
if (times > 1) {
_$jscoverage['again.js'][33]++;
obj.times = times;
_$jscoverage['again.js'][34]++;
obj.count = 0;
}
_$jscoverage['again.js'][36]++;
__timer[key] = obj;
_$jscoverage['again.js'][37]++;
__program[key] = setInterval((function () {
_$jscoverage['again.js'][38]++;
func.apply(that, args);
_$jscoverage['again.js'][39]++;
if (__timer[key] && __timer[key].times) {
_$jscoverage['again.js'][40]++;
var obj = __timer[key];
_$jscoverage['again.js'][41]++;
obj.count++;
_$jscoverage['again.js'][42]++;
if ((obj.times - 1) <= obj.count) {
_$jscoverage['again.js'][43]++;
abort(key);
}
}
}), interval);
});
_$jscoverage['again.js'][48]++;
return f;
}
_$jscoverage['again.js'][51]++;
module.exports = again;
_$jscoverage['again.js'].source = ["","/**"," * Module dependencies."," */","var crypto = require('crypto');","var __program = {};","var __timer = {};","","","function md5(str){"," var hash = crypto.createHash('md5');"," str += new Date().getTime();"," return hash.update(str, 'utf-8').digest('hex'); ","}","","function abort(key){"," clearInterval(__program[key]);"," delete __timer[key];","}","function again(func, interval, times){"," interval = interval || 1000;",""," var f = function () {"," var that = this;"," var args = f.arguments;"," func.apply(that, args); //执行一次"," var key = md5(func.toString());"," var obj = {};"," if (times === 1) {"," return;"," }"," if (times > 1) {"," obj.times = times;"," obj.count = 0;"," }"," __timer[key] = obj;"," __program[key] = setInterval(function () {"," func.apply(that, args);"," if (__timer[key] && __timer[key].times) {"," var obj = __timer[key];"," obj.count++;"," if ((obj.times - 1) <= obj.count) {"," abort(key);"," }"," }"," }, interval)"," }"," return f;","}","","module.exports = again;"];