Д
Size: a a a
Д
M
M
const { throttle } = require('metasync');
const businessLogic = () => {
// …some logic
console.log(currentTime(‘Hours:min:sec:msec’), ‘Save’);
}
const SWT = throttle(1000, businessLogic);
setInterval(() => {
SWT(some data);
}, 50);
20:29:52:108 Save
20:29:52:135 Save
20:29:53:137 Save
20:29:53:176 Save
20:29:54:177 Save
20:29:54:195 Save
20:29:55:198 Save
20:29:55:231 Save
M
throttle
такая:// Get throttling function, executed once per interval
// Signature: timeout, fn, ...args
// timeout - <number>, msec interval
// fn - <Function>, to be throttled
// args - <Array>, arguments for fn, optional
//
// Returns: <Function>
const throttle = (timeout, fn, ...args) => {
let timer;
let wait = false;
const execute = args
? (...pars) => (pars ? fn(...args, ...pars) : fn(...args))
: (...pars) => (pars ? fn(...pars) : fn());
const delayed = (...pars) => {
timer = undefined;
if (wait) execute(...pars);
};
const throttled = (...pars) => {
if (!timer) {
timer = setTimeout(delayed, timeout, ...pars);
wait = false;
execute(...pars);
}
wait = true;
};
return throttled;
};
UT
throttle
такая:// Get throttling function, executed once per interval
// Signature: timeout, fn, ...args
// timeout - <number>, msec interval
// fn - <Function>, to be throttled
// args - <Array>, arguments for fn, optional
//
// Returns: <Function>
const throttle = (timeout, fn, ...args) => {
let timer;
let wait = false;
const execute = args
? (...pars) => (pars ? fn(...args, ...pars) : fn(...args))
: (...pars) => (pars ? fn(...pars) : fn());
const delayed = (...pars) => {
timer = undefined;
if (wait) execute(...pars);
};
const throttled = (...pars) => {
if (!timer) {
timer = setTimeout(delayed, timeout, ...pars);
wait = false;
execute(...pars);
}
wait = true;
};
return throttled;
};
M
metasync
всё таки с заявкой на успех )UT
metasync
всё таки с заявкой на успех )UT
const throttle = (timeout, fn, ...args) => {
let timer;
let savedArg;
let savedThis;
const delayed = () => {
timer = undefined
if (savedArg) {
throttled.call(savedThis, ...savedArg);
savedArg = savedThis = undefined;
}
};
const throttled = (...pars) => {
if (timer) {
savedArg = pars;
savedThis = this;
return
}
fn.call(this, ...args, ...pars);
timer = setTimeout(delayed, timeout);
};
return throttled;
};
M
const throttle = (timeout, fn, ...args) => {
let timer;
let savedArg;
let savedThis;
const delayed = () => {
timer = undefined
if (savedArg) {
throttled.call(savedThis, ...savedArg);
savedArg = savedThis = undefined;
}
};
const throttled = (...pars) => {
if (timer) {
savedArg = pars;
savedThis = this;
return
}
fn.call(this, ...args, ...pars);
timer = setTimeout(delayed, timeout);
};
return throttled;
};
a
TS
a
M
a
M
O
TS
VH
A