UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

37 lines (29 loc) 867 B
'use strict'; 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;