разбираюсь с debouncing и throttling, основу работы setTimeout() и setInterval() понимаю, но код ниже меня запутывает, так при выполнении без пауз в Node.js и хроме выдает (1, 3, 4), а при разборе выполнения кода с паузами в режиме отладки в хроме выдает(1, 3).
Не пойму, когда именно срабатывает setTimeout() внутри и вне функции. Могут ли они выполняться в одно время, то есть походу выполнения включается другой?
function f(x) {
console.log(x);
}
function debounce(func, ms) {
let isCooldown = false;
return function() {
if (isCooldown === false) {
func.apply(this, arguments);
isCooldown = true;
}
setTimeout(() => isCooldown = false, ms);
};
}
let f1000 = debounce(f, 1000);
f1000(1); // сразу выполняется
f1000(2); // активирует таймер, в котором через 1с будет "true"
setTimeout(() => f1000(3), 1100);// по идее этот вызов должен сработать наверняка - вывести 3.
setTimeout(() => f1000(4), 2110);// а этот вызов лишь задать "false" для последующих.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Давно зрела мысля сделать небольшую браузерную игру, вот пытаюсь залезть в тему gamedevИзначально была идея сделать анимацию построенную на спрайтах:
День добрыйКаким образом можно проиграть звук в браузере с той вкладки, на которой пользователь не находится в данный момент ? На деле выходит,...
Есть процесс(сервис), он должен быть один в одноранговой сетиТо бишь, только на одной машине должен быть запущен этот процесс