bbo
Version:
bbo is a utility library of zero dependencies for javascript.
37 lines (29 loc) • 867 B
JavaScript
;
var args = require('./args.js');
var clear_timesout = require('./clear_timesout.js');
/**
* setInterval func fix times
* https://stackoverflow.com/questions/2956966/javascript-telling-setinterval-to-only-fire-x-amount-of-times
*/
function setTimesout() {
var func = arguments[0];
var delay = arguments[1] === undefined ? 0 : parseFloat(arguments[1]);
var times = arguments[2] === undefined ? 1 : parseInt(arguments[2], 10);
var _args = arguments.length > 3 ? args(arguments, 3) : null;
var target = {
index: 0,
times: times,
over: false
};
var id = setInterval(function () {
target.index++;
if (target.index > times) {
clear_timesout(id);
} else {
if (target.index === times) target.over = true;
func.apply(target, _args);
}
}, delay);
return id;
}
module.exports = setTimesout;