UNPKG

bbo

Version:

bbo is a utility library of zero dependencies for javascript.

31 lines (25 loc) 566 B
'use strict'; /* eslint-disable no-invalid-this */ function throttle(fn, interval, callFirst) { var wait = false; var callNow = false; return function () { callNow = callFirst && !wait; var context = this; var args = arguments; if (!wait) { wait = true; setTimeout(function () { wait = false; if (!callFirst) { return fn.apply(context, args); } }, interval); } if (callNow) { callNow = false; return fn.apply(this, arguments); } }; } module.exports = throttle;