SELECT users.*, sum(payments.amount) as `summ`
FROM `users`
LEFT OUTER JOIN `payments`
ON `users`.`id` = `payments`.`user_id`
LEFT OUTER JOIN `qiwi_withdraws`
ON `users`.`id` = `qiwi_withdraws`.`user_id`
WHERE payments.created_at BETWEEN '$yesterday' and '$today'
AND `status` = '2'
GROUP BY user_id
function test() {
console.log('test');
}
// два раза запускаем оригинал
for (let i = 0; i < 2; i++) debounce1(test);
// в консоли будет один вывод "test"
// через полсекунды после последнего вызова.
// два раза запускаем ваш вариант
for (let i = 0; i < 2; i++) debounce2(test);
// в консоли ничего не будет.
window.debounce = function (functionToDebounce) {
...
lastTimeout = window.setTimeout(functionToDebounce, DEBOUNCE_INTERVAL);
};
functionToDebounce
— это параметр функции и используется в setTimeout.debounce
, которую потом можно использовать в своих целях.window.addEventListener('resize', function(){
debounce(function(){
console.log('resize');
})
})
function(){
console.log('resize');
}
functionToDebounce
, — функция которая будет выполняться только через 500 мс после последнего вызова.как понять условие if (lastTimeout)