UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

35 lines (28 loc) 842 B
import args from './args.js'; import clearTimesout from './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) { clearTimesout(id); } else { if (target.index === times) target.over = true; func.apply(target, _args); } }, delay); return id; } export default setTimesout;