export function debounce any>( func: F, timeout: number, ) { let timer: Parameters[0] return (...args: Parameters) => new Promise(rs => { clearTimeout(timer) timer = setTimeout(() => { rs(func(...args)) }, timeout) }) } export const noop = () => {}