@tolokoban/ui
Version:
React components with theme
23 lines • 1.53 kB
JavaScript
/**
* The function to call as much as you want. It will perform the debouce for you.
* Put in the same args as the `action` function.
*
* * action - Action to call. Two consecutive actions cannot be called if there is
* less than `delay` ms between them.
* * delay - Number of milliseconds.
*/
export function asyncCreateDebouncer(action, delay) {
let timer = 0;
return function (...args) {
if (timer)
window.clearTimeout(timer);
timer = window.setTimeout(() => {
timer = 0;
action(...args);
}, delay);
};
}
export function asyncSleep(milliseconds) {
return new Promise((resolve) => setTimeout(resolve, milliseconds));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbC9hc3luYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUNoQyxNQUFpQixFQUNqQixLQUFhO0lBRWIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFBO0lBRWIsT0FBTyxVQUFtQyxHQUFHLElBQU87UUFDaEQsSUFBSSxLQUFLO1lBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNyQyxLQUFLLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsS0FBSyxHQUFHLENBQUMsQ0FBQTtZQUNULE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFBO1FBQ25CLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQTtJQUNiLENBQUMsQ0FBQTtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLFlBQW9CO0lBQzNDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQTtBQUN0RSxDQUFDIn0=