Sha256: ce39ed24085028c071e4686aebd2eb0ca2c3ebbdf8d526578212fc42b79b06c6
Contents?: true
Size: 824 Bytes
Versions: 69
Compression:
Stored size: 824 Bytes
Contents
var now = require('../time/now'); /** */ function throttle(fn, delay){ var context, timeout, result, args, diff, prevCall = 0; function delayed(){ prevCall = now(); timeout = null; result = fn.apply(context, args); } function throttled(){ context = this; args = arguments; diff = delay - (now() - prevCall); if (diff <= 0) { clearTimeout(timeout); delayed(); } else if (! timeout) { timeout = setTimeout(delayed, diff); } return result; } throttled.cancel = function(){ clearTimeout(timeout); }; return throttled; } module.exports = throttle;
Version data entries
69 entries across 69 versions & 2 rubygems