leetcode

Solution to some Leetcode problems written in C++
git clone git://git.dimitrijedobrota.com/leetcode.git
Log | Files | Refs | README | LICENSE

2676.js (664B)


0 /**
1 * @param {Function} fn
2 * @param {number} t
3 * @return {Function}
4 */
6 var throttle = function(fn, t) {
7 let timeoutInProgress = null;
8 let argsToProcess = null;
10 const timeoutFunction = () => {
11 if (argsToProcess === null) {
12 timeoutInProgress = null; // enter the waiting phase
13 } else {
14 fn(...argsToProcess);
15 argsToProcess = null;
16 timeoutInProgress = setTimeout(timeoutFunction, t);
17 }
18 };
20 return function throttled(...args) {
21 if (timeoutInProgress) {
22 argsToProcess = args;
23 } else {
24 fn(...args); // enter the looping phase
25 timeoutInProgress = setTimeout(timeoutFunction, t);
26 }
27 }
28 };